cài đặt thích hợp cho Fb, Fc trong phức hợp sóng nhỏ (cmor) là gì?


7

Tôi đang sử dụng biến đổi wavelet Cmor-Fb-FC trong môi trường MATLAB. Fb là băng thông và Fc là tham số tần số trung tâm. với quy trình lỗi và quy trình, tôi chọn Fb-Fc là 5-1 và tôi đã có đầu ra hợp lý. Nhưng tôi muốn biết quy tắc chọn giá trị phù hợp cho các tham số Fb-Fc là gì? Hãy tưởng tượng tôi đang sử dụng 300 mẫu trong hơn 30 giây. vì vậy tần số lấy mẫu của tôi là 10 Hz. Đây là tín hiệu của tôi.

x=sin(2*pi*t*.1).*(t<10)+sin(2*pi*t*0.3).*... 
    (t<30)+sin(2*pi*t*0.6).*(t<10).*exp(-t*.1);

hình như fb = (1 / Tp) có ai xác nhận không ??
Arnaldo Batista

Câu trả lời:


10

Hãy nhớ rằng Biến đổi Wavelet không là gì ngoài các hoạt động lọc / tương quan cục bộ theo thời gian . Các biến đổi wavelet cung cấp một khung thống nhất để đi xung quanh Nguyên tắc không chắc chắn của Heisenberg mà Biến đổi Fourier phải chịu. Vì vậy, khi bạn hỏi "cài đặt của tôi phải là gì đối với băng thông và tần số trung tâm", bạn sẽ yêu cầu các tham số bộ lọc được cung cấp cho bạn. Không ai có thể cung cấp cho bạn các tham số bộ lọc trừ chính bạn và ứng dụng của bạn. Đây là lý do tại sao chúng là các tham số. :-)

Cụ thể hơn, cách chọn và của bạn phải liên quan đến bản chất của tín hiệu của bạn. Đầu tiên, một số giới hạn trước:FcFb

Biến đổi Wavelet không là gì ngoài các bộ lọc phù hợp mà bạn xây dựng, sao cho bạn có kết quả phù hợp nhất với 'tính năng' trong tín hiệu bạn quan tâm. Một bộ 'tính năng' mà bạn có thể xem xét sẽ là vùng lân cận tần số trung tâm và vùng lân cận băng thông. Một lần nữa, không ai có thể chọn những thứ đó cho bạn , bởi vì bạn cần biết những gì bạn đang tìm kiếm. Tuy nhiên, bạn có thể chọn một phạm vi tương xứng với những gì bạn mong đợi. (Đây thực sự là một trong những tính năng giúp Wavelet Transforms trở nên rất mạnh mẽ).

Các wavelet morlet được cho bởi chức năng sau đây:

Ψ(t,fc,Tp)= =1πTp e-t2Tp e-j2πfct

Ở đây, là chỉ số thời gian tính bằng giây, là tần số trung tâm của bạn và đại diện cho cái mà tôi đã gọi là "Thông số chu kỳ". Kiểm tra phương trình trên. Lưu ý rằng sóng con morlet thực tế không có gì ngoài một hàm mũ phức tạp tập trung ở tần số , được hiển thị bởi hàm gaussian có nghĩa là 0, vớitfcTpfcσ= =Tp2

Do đó, để trả lời câu hỏi đầu tiên của bạn, tham số , phải được chọn sao cho nó ở hoặc gần tần số bạn muốn thẩm vấn.Fc

Về băng thông sóng con: Cái mà tôi gọi là ở đây là "Thông số kỳ" của bạn và điều này liên quan trực tiếp đến băng thông của bạn. Quay trở lại phương trình Morlet Wavelet và xem xét một kịch bản thay vì cửa sổ gaussian, chúng tôi đã sử dụng một cửa sổ hình chữ nhật. Trong Miền Fourier, chúng tôi đạt được một hàm chân thành do loại cửa sổ này và chúng tôi có thể nói rằng Băng thông Null-To-Null, , chỉ đơn giản là: , ( trong băng thông).TpBB= =2TperTôiod

Hình dưới đây minh họa điều này cho một số mũ phức tạp nằm ở Hz, với các giá trị khác nhau :fc= =2TperTôiod

nhập mô tả hình ảnh ở đây

Bạn có thể thấy rõ rằng khi phạm vi thời gian được tăng lên, băng thông giảm. Đây là bản chất nghịch đảo của mối quan hệ tần số thời gian. Nếu bạn muốn sử dụng giả sóng này, bạn sẽ chọn là gì? Câu trả lời sẽ là "Dù tín hiệu quan tâm của tôi bị treo ở đâu". Trên thực tế, đây chính xác là những gì được thực hiện trong Short-Fourier-Transform, (STFT), mặc dù người ta sẽ chọn một cửa sổ thông minh hơn thay vì ô tô.TperTôiodTperTôiod

Bây giờ chúng ta hãy kiểm tra lại phương trình Morlet Wavelet và chèn lại hàm cửa sổ gaussian, với . Nếu chúng ta thực hiện điều này, chúng ta sẽ nhận được các sơ đồ miền thời gian sau và các Biến đổi Fourier rời rạc (DFT) tương ứng của Wavelets Morlet:σ= =Tp2

nhập mô tả hình ảnh ở đây

Một lần nữa, hãy chú ý đến mức độ - khi phương sai của cửa sổ gaussian che mờ theo cấp số nhân phức tạp, băng thông trong Miền Fourier giảm. (Trong trường hợp này, chúng ta có hành vi bên thùy đẹp hơn nhiều, nhưng điều này là tiếp tuyến). Trong mọi trường hợp, bạn có thể một lần nữa xem cách chúng tôi có mối quan hệ nghịch đảo giữa tham số , (hoặc tham số độ lệch chuẩn của gaussian của bạn, tùy theo bạn) và băng thông của bộ lọc tương ứng.Tp

Phải làm gì với kiến ​​thức này: Bây giờ bạn đã hiểu làm thế nào băng thông có liên quan đến chức năng tạo bóng gaussian được nhúng trong Wavelet Morlet. Do đó, đối với bất kỳ tín hiệu nào bạn có, bạn chỉ cần lấy DFT của tín hiệu của mình và quan sát băng thông của nó ở các tần số trung tâm khác nhau. Sau đó, điều chỉnh các tham số và của Wavelet Morlet của bạn cho phù hợp, sao cho chức năng DFT của bộ lọc Morlet chồng chéo trực tiếp chức năng DFT của tín hiệu mẫu của bạn. Đây là cách bạn có thể thiết lập các tham số của bạn.x[n]σfc

Mã để tạo các ô trên là ở đây:

clear all;
fS = 500;
tStart = -4;
tStop = 4;
timeVector = linspace(tStart,tStop, (tStop-tStart)*fS );
fCenter = 2;
tP = [0.2 1 3];
exps = length(tP);

figure(1); clf(1);
figure(2); clf(2);
for ii = 1:exps

    tPeriod = tP(ii);
    timeMask = zeros(1,length(timeVector));
    timeMask((timeVector >= -tPeriod/2) & (timeVector <= tPeriod/2)) = 1;

    psiFakeWavelet = exp(2*1i*pi*fCenter.*timeVector).*timeMask;
    psiWavelet = ((pi*tP(ii))^(-0.5)).*exp(2*1i*pi*fCenter.*timeVector).*exp(-timeVector.^2/tP(ii));

    %Demonstrating the Rectangular Window
    figure(1);
    subplot(3,2,2*ii-1);
    plot(timeVector,real(psiFakeWavelet), timeVector,imag(psiFakeWavelet));
    ylim([-1.2 1.2])
    xlabel('Time / Seconds');
    title(sprintf('Morlet Wavelet, T_{period} = %2.2f, f_c = %2.2f Hz', tPeriod, fCenter));

    input = psiFakeWavelet;
    Nfft = 10 * 2^nextpow2(length(input));
    psd = 20.*log10(fftshift(abs(fft(input,Nfft))));
    freqs = [0:Nfft - 1].*(fS/Nfft);
    freqs(freqs >= fS/2) = freqs(freqs >= fS/2) - fS;
    freqs = fftshift(freqs);
    figure(1);
    subplot(exps,2,2*ii);
    plot(freqs, psd); 
    xlim([-10  15]);
    xlabel('Frequency / Hz');
    title (sprintf('PSD, Null-Null-BW = %2.2f Hz', 2/tPeriod));

    %Demonstrating the Morlet Wavelet
    figure(2);
    subplot(3,2,2*ii-1);
    plot(timeVector,real(psiWavelet), timeVector,imag(psiWavelet));
    ylim([-1.2 1.2])
    xlabel('Time / Seconds');
    title(sprintf('Morlet Wavelet, T_{period} = %2.2f, f_c = %2.2f Hz', tPeriod, fCenter));

    input = psiWavelet;
    Nfft = 10 * 2^nextpow2(length(input));
    psd = 20.*log10(fftshift(abs(fft(input,Nfft))));
    freqs = [0:Nfft - 1].*(fS/Nfft);
    freqs(freqs >= fS/2) = freqs(freqs >= fS/2) - fS;
    freqs = fftshift(freqs);
    figure(2);
    subplot(exps,2,2*ii);
    plot(freqs, psd); 
    xlim([-10  15]);
    xlabel('Frequency / Hz');
    title ('Wavelet PSD');

end

cảm ơn! vậy nếu tôi có 3 chế độ trong tín hiệu của mình ([0,1,0,3,0,6] Hz) thì Fc của tôi sẽ là 0,25 Hz (0,6-0,1) / 2? và làm cách nào để xác định băng thông tín hiệu của mình? (Fb)
SAH

"Đi vòng quanh Nguyên tắc bất định Heisenberg" Tôi không nghĩ điều đó hoàn toàn chính xác. Họ vẫn có cùng một vấn đề, nhưng họ tạo ra sự đánh đổi khác nhau ở các tần số khác nhau.
endolith

3
@endolith Biến đổi Fourier chứa thông tin tần số 100% và thông tin thời gian 0%, nhờ HUP. Wavelets có được điều này thông qua một sự đánh đổi.
Tarin Ziyaee

@ endolith, @ Người dùng4619. cảm ơn thông tin, bạn sẽ trả lời câu hỏi của tôi về việc chọn fb và fc xin vui lòng?
SAH

1
@Electricman: Nó phụ thuộc vào ứng dụng. Hãy thử các giá trị khác nhau và xem những tính năng nổi bật mà bạn quan tâm.
endolith
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.