Làm thế nào tôi có thể vẽ tần số so với cường độ của biến đổi wavelet?


14

Tôi đang chạy Morlet biến đổi wavelet liên tục. Tôi đã nhận được wscalogramtín hiệu và bây giờ tôi muốn vẽ biểu đồ tần số như hình ảnh sau đây, nhưng tôi không biết làm thế nào để làm điều đó:

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

Tôi đã sử dụng scal2freq hàm MATLAB để chuyển đổi tỷ lệ thành tần số giả. Ngoài ra tôi có một số tần số trong tín hiệu của mình có tỷ lệ giảm chấn lớn (4%) nên chúng không thể nhìn thấy rõ trong âm mưu. Làm thế nào tôi có thể phóng đại các chế độ ẩm ướt này?

Tôi đang sử dụng MATLAB, đây là mã của tôi:

% Import the text4.txt to matlab workspace. and save it under name "data"
t=linspace(0,30,301);
Fs=ceil(inv(t(2)-t(1)));
x=data(:,4); % use x=data(:,3),x=data(:,5) too. first column is time,second is refrence
wname = 'morl';
scales = 1:1:256;
coefs = cwt(x,scales,wname,'lvlabs');
freq = scal2frq(scales,wname,1/Fs);
surf(t,freq,abs(coefs));shading('interp');
axis tight; xlabel('Seconds'); ylabel('Pseudo-Frequency (Hz)');
axis([0 30 0 1 0 60])
xlabel('Time'); ylabel('Frequency');
figure;
sc=wscalogram('image',coefs,'scales',freq,'ydata',x);
hold on 

Cốt truyện hiện tại của tôi trông như thế này:

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


Dữ liệu biến đổi wavelet của bạn có hình thức nào?
Jim Clay

Xin chào @JimClay! Tôi không chắc chắn nếu tôi hiểu câu hỏi của bạn. nhưng nếu bạn muốn nói nó trông như thế nào, thì nó giống như liên kết thứ 2 mà tôi duy trì ở câu hỏi. và tôi muốn một cốt truyện như liên kết 1. (2 [myplot]) cubeupload.com/im/bSSlMI.jpg 1st [mong muốn]) cubeupload.com/im/KbhGMI.jpg đây là tín hiệu của tôi < fileswap.com/dl/Lwf7n96fAt/test4.txt.html > ở đây là Mfile của tôi < fileswap.com/dl/gMrslBFAdb/mfile.txt.html > trân trọng nhất.
Thợ điện

Tôi không thực sự chắc chắn câu hỏi của bạn là gì ...
Tarin Ziyaee

Xin chào @ user4619; Nhìn vào cốt truyện đầu tiên. bạn nhìn thấy một âm mưu [tần số tự do] ở phía bên phải của biểu đồ sóng con [thu được bằng matlab]. hình ảnh thứ hai là scalogram wavelet của tôi. nhưng tôi không biết cách vẽ [freq-cường độ] như bên phải của cốt truyện đầu tiên. Có ai giúp đỡ không?
Thợ điện

@Electricman Một quang phổ không giống như một biểu đồ. Nếu bạn đang đi một scalogram, không có thời gian VS tần số, chỉ có quy mô thời gian VS. Vì vậy, một trong những bạn đang làm chính xác?
Tarin Ziyaee

Câu trả lời:


4

Sửa đổi mã của bạn một chút, nhưng không có thay đổi lớn và tôi cũng nhận được kết quả chính xác. Sử dụng mã mẫu này ở đây và bạn sẽ không thấy bất kỳ vấn đề nào. Tôi nhận được kết quả chính xác.

clear all; 
t=linspace(0,30,301); 
Fs = (inv(t(2)-t(1))); 
x=randn(100,1);  
wname = 'morl'; 
scales = 1:1:256; 
chefs = cwt(x,scales,wname,'lvlabs');

freq = scal2frq(scales,wname,1/Fs);

figure; 
coefsSquared = abs(coefs).^2; 
imagesc(coefsSquared); 
grid off;

%Pick one of the columsn to plot: 
figure; 
plot(coefsSquared(:,47))

Để có được hình ở phía bên phải của hình ảnh đầu tiên bạn đưa lên, đó chỉ đơn giản là phổ cắt thời gian. Nói cách khác, một cột trong ma trận tần số thời gian của bạn.

Ví dụ: chúng ta có thể nhận được ma trận hệ số bình phương sau, theo tần suất so với thời gian:

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

Sau đó, chúng ta hãy giả sử rằng chúng ta muốn xem phổ cho lát cắt thời gian ở cột 47. Sau đó, điều này được đưa ra ở đây:

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

Tại đây, bạn sẽ thấy sức mạnh của các hệ số, so với tần số, cho lát cắt thời gian tương ứng với cột 47.


Cảm ơn đã sửa đổi mã. Nhưng tôi vẫn chưa nhận được câu trả lời cho câu hỏi của mình. Câu hỏi là Làm thế nào tôi có thể vẽ Freq-độ lớn hoặc quy mô-độ lớn [không có sự khác biệt]. Tôi muốn một cốt truyện như bên phải của bức tranh đầu tiên. [Đó là câu hỏi]. cảm ơn trước
Thợ điện

1
@Electricman Cốt truyện ở phía bên tay phải chỉ đơn giản là một cột trong ma trận Thời gian VS Tần số của bạn.
Tarin Ziyaee

- @ user4619 Không phải Freq so với thời gian, Phạm vi thời gian là 0-20 và dải tần số là 0-2,5 nhưng âm mưu bên tay phải là freq vs cường độ. Tôi không chắc chắn chính xác coefs hoặc độ lớn của nó nhưng rõ ràng tỷ lệ của nó với cofes hoặc cofes ^ 2. tnx
điện

@Electricman Vui lòng xem các chỉnh sửa. Bây giờ có rõ ràng hơn không?
Tarin Ziyaee

- @ user4619 Nó hoạt động. Cảm ơn câu trả lời của bạn. Tôi đặt một ít mã ở cuối mfile. và có cùng cốt truyện với phần bên phải của cốt truyện được đề cập. cof2 = abs (coefs). ^ 2; cof2trans = cof2 '; maxmods = max (cof2trans); nhân vật; trục cốt truyện (maxmods, freq) ([0 60 0 1]) Trân trọng
điện

4

Biến đổi wavelet liên tục (CWT) là một phương pháp để phân tích quy mô thời gian . Có, bạn đọc nó một cách chính xác, tỷ lệ , không phải tần số . Tuy nhiên, có thể ánh xạ tỷ lệ theo tần số, và thậm chí khá dễ dàng. Vì bạn là người dùng MATLAB, nên có thể bạn sẽ muốn sử dụng chức năng này , thực hiện như sau:

F = scal2frq (A, 'wname', DELTA) trả về tần số giả tương ứng với các thang đo được đưa ra bởi A, hàm sóng con 'wname' (xem wavefun để biết thêm thông tin) và thời gian lấy mẫu DELTA.

Như bạn có thể đọc, tần số không phải là tần số thực trong tín hiệu, mà là xấp xỉ. Nếu bạn muốn tần số thực, bạn nên sử dụng biến đổi Fourier thời gian ngắn (STFT).

Vậy, khi nào nên sử dụng CWT? Theo nguyên tắc chung, wavelet hoạt động tốt khi các tín hiệu là thời (tức là có sự thay đổi nhanh chóng).

EDIT: haha, tôi không biết tôi đang làm gì ở đây. xin lỗi :-D hoàn toàn bỏ lỡ điểm câu hỏi của bạn Chỉ cần đọc tiêu đề ....


@wave thông tin của bạn là chính xác. Nhưng cái gì cơ? Tôi chỉ muốn có một cốt truyện như bên phải của bức tranh đầu tiên. freq vs độ lớn. và nó ổn nếu tôi có được tỷ lệ so với cường độ miễn là tôi có thể sử dụng scal2freq.
Thợ điện

"Nếu bạn muốn tần số thực, bạn nên sử dụng biến đổi Fourier thời gian ngắn (STFT)." Bước sóng Morlet có tần số giống như STFT cửa sổ Gaussian có tần số. "Nguyên tử" của cả hai biến đổi là như nhau.
endolith

0

Không chắc chắn nếu bạn vẫn cần trợ giúp ...

Nếu bạn muốn tần số so với cường độ, hãy sử dụng lệnh "lưới / lướt" để vẽ các hệ số.

Sau đó thay đổi hướng của cốt truyện để bạn có kết quả mà bạn tìm kiếm. Đối với điều này xem lệnh "xem".


Cảm ơn, tôi đã giải quyết vấn đề đó vài tháng trước và công bố kết quả của mình. Nhưng tôi sẽ thử thay thế vào lần tới. Nhưng, hãy chuyển câu trả lời của bạn đến vị trí bình luận. chúc may mắn. @ asilva732
điện
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.