웨이블릿 변환의 크기와 크기를 어떻게 플로팅 할 수 있습니까?


14

Morlet 연속 웨이블릿 변환을 실행 중입니다. 나는 wscalogram신호를 얻었고 이제 다음 그림과 같이 freq-magnitude를 플롯하려고하지만 어떻게 해야할지 모르겠습니다.

여기에 이미지 설명을 입력하십시오

scal2freqMATLAB 함수를 사용 하여 스케일을 의사 주파수로 변환했습니다. 또한 신호에 큰 감쇠비 (4 %)를 갖는 일부 주파수가 있으므로 플롯에서 잘 보이지 않습니다. 이 감쇠 모드를 과장하려면 어떻게해야합니까?

MATLAB을 사용하고 있습니다. 다음은 내 코드입니다.

% 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 

내 현재 줄거리는 다음과 같습니다.

여기에 이미지 설명을 입력하십시오


웨이블릿 변환 데이터는 어떤 형식을 취합니까?
Jim Clay

안녕 @ JimClay! 귀하의 질문을 이해하는지 잘 모르겠습니다. 그러나 당신이 그것이 어떻게 보이는지를 의미한다면, 나는 질문에서 유지 한 두 번째 링크와 같습니다. 첫 번째 링크와 같은 줄거리를 원합니다. (2nd [myplot]) cubeupload.com/im/bSSlMI.jpg 1st ( 원함 ) cubeupload.com/im/KbhGMI.jpg 여기 내 신호는 < fileswap.com/dl/Lwf7n96fAt/test4.txt.html >입니다. 내 Mfile < fileswap.com/dl/gMrslBFAdb/mfile.txt.html > 안부.
Electricman

당신의 질문이 무엇인지 잘 모르겠습니다 ...
Tarin Ziyaee

안녕하세요 @ user4619; 첫 줄거리를보세요. 웨이블릿 스 칼로 그램의 오른쪽에 [matlab에 의해 얻은] 플롯 [freq-magnitude]이 표시됩니다. 두 번째 사진은 제 웨이블릿 스 칼로 그램입니다. 그러나 나는 첫 줄거리의 오른쪽과 같이 [freq-magnitude]를 그리는 방법을 모른다. 어떤 도움 PLZ?
Electricman

@Electricman 스펙트로 그램은 스 칼로 그램과 다릅니다. 스 칼로 그램을 진행하는 경우 주파수 VS 시간이없고 스케일 VS 시간 만 있습니다. 정확히 어느 쪽을하고 있습니까?
Tarin Ziyaee

답변:


4

코드를 약간 수정했지만 큰 변화는 없었으며 올바른 결과를 얻었습니다. 이 템플릿 코드를 여기에 사용하면 아무런 문제가 없습니다. 올바른 결과를 얻습니다.

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))

첫 번째 이미지의 오른쪽에 그림을 표시하려면 시간 조각 스펙트럼입니다. 다시 말해, 주파수-시간 행렬의 한 열입니다.

예를 들어 주파수 대 시간으로 다음과 같은 제곱 계수 행렬을 얻을 수 있습니다.

여기에 이미지 설명을 입력하십시오

그런 다음 열 47에서 타임 슬라이스의 스펙트럼을보고 싶다고 가정 해 봅시다. 그러면 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

여기에서 열 47에 해당하는 타임 슬라이스에 대한 계수 대 주파수의 검정력이 표시됩니다.


코드를 수정 해 주셔서 감사합니다. 그러나 나는 아직 내 질문에 대한 답을 얻지 못했다. 문제는 어떻게 Freq-magnitude 또는 scale-magnitude [no difference]를 플로팅 할 수 있는가이다. 첫 번째 그림의 오른쪽과 같은 줄거리를 원합니다. [문제가됩니다]. 미리 감사드립니다
Electricman

1
@Electricman 오른쪽 그림은 주파수 VS 시간 행렬의 한 열입니다.
Tarin Ziyaee

-@ user4619 Freq vs 시간이 아니며, 시간 범위는 0-20이고 주파수 범위는 0-2.5이지만 오른쪽 그림은 주파수 대 크기입니다. 나는 그것의 정확한 코페 또는 크기는 확실하지 않지만 분명히 코페 또는 코페에 비례한다 ^ 2. tnx
Electricman

@Electricman 편집 내용을 참조하십시오. 지금 더 명확합니까?
Tarin Ziyaee

작동합니다. 답변 주셔서 감사합니다. mfile 끝에 작은 코드를 넣었습니다. 언급 된 플롯의 오른쪽과 동일한 플롯을 얻었습니다. cof2 = abs (코프). ^ 2; cof2trans = cof2 '; maxmods = max (cof2trans); 그림; plot (maxmods, freq) 축 ([0 60 0 1]) 안부
Electricman

4

연속 웨이블릿 변환 (CWT)은 시간 스케일 분석 방법입니다 . 예, 주파수가 아닌 스케일로 올바르게 읽습니다 . 그러나 스케일을 주파수에 매핑하는 것도 가능합니다. MATLAB 사용자이므로이 기능 을 사용하고 싶을 것입니다 다음과 같은 을 수행 할 수 있습니다.

F = scal2frq (A, 'wname', DELTA)는 A에 의해 주어진 스케일, 웨이블릿 함수 'wname'(자세한 정보는 wavefun 참조) 및 샘플링주기 DELTA에 해당하는 의사 주파수를 반환합니다.

읽을 수 있듯이 주파수는 신호의 실제 주파수가 아니라 근사치입니다. 실제 주파수를 원하면 STFT (short-time Fourier Transform)를 사용해야합니다.

그렇다면 언제 CWT를 사용해야합니까? 일반적으로 웨이블릿은 신호가 일시적 (즉, 빠른 변화 .

편집 : 하하, 나는 내가 여기서하고있는 일을 모른다. 죄송합니다 :-D가 귀하의 질문의 포인트를 완전히 놓쳤습니다. 제목을 읽으십시오 ....


@wave 귀하의 정보가 정확합니다. 그러나 무엇? 첫 번째 그림의 오른쪽과 같은 줄거리를 원합니다. 주파수 대 크기. scal2freq를 사용할 수있는 한 스케일과 크기를 얻는다면 괜찮습니다.
Electricman

"실제 주파수를 원한다면, 단기 푸리에 변환 (STFT)을 사용해야합니다." Morlet wavelet 은 Gaussian-windowed STFT의 주파수와 같은 방식으로 주파수를 갖습니다. 두 변환의 "원자"는 동일합니다.
endolith

0

여전히 도움이 필요한지 확실하지 않습니다 ...

주파수 대 크기를 원하면 "mesh / surf"명령을 사용하여 계수를 플로팅하십시오.

그런 다음 원하는 결과를 얻을 수 있도록 플롯의 방향을 변경하십시오. 이에 대해서는 "view"명령을 참조하십시오.


고마워, 나는 몇 달 전에 그 문제를 해결하고 결과를 발표했다. 그러나 나는 당신의 대안을 다음에 시도 할 것입니다. 그러나 귀하의 답변을 의견을 옮기십시오. 행운을 빕니다. @ asilva732
Electricman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.