[已答复] 傅立葉轉換

[复制链接]
guanchengdong 发表于 2018-11-28 22:23:25
本帖最后由 guanchengdong 于 2018-11-28 22:24 编辑

我想請教說CODE裡Y值出來是4096*52為一個矩陣,但為何經過YY=2*abs(Y(1:NFFT/2+1));會變成1*2049,預期應該是2049*52但好像沒辦法得到這樣的結果,請問是發生了捨麼問題,求解各位大神

total9=0;
total10=0;
for pw=1:38
%for cw=1:52
L=3000; % Length of signal 10min
Fs=10; % 取樣頻率 Fs = 10 Hz
T=1/Fs
% t = (1800:2999)*T;
NFFT = 2^nextpow2(L);
Y= fft(result2{1,pw},NFFT)/L;
f = Fs/2*linspace(0,1,NFFT/2+1);

total9=total9+1;
temp6=zeros(4096,52); %要先跑看他多少資料點
temp6(:,:)=temp6(:,:)+Y;
result9{total9}=temp6;

%for cw=1:52
f1=f(:,1:512);
f1=f1';
YY=2*abs(Y(1:NFFT/2+1)); %频谱幅值 %52近來變一條

total10=total10+1;
temp8=zeros(1,2049); %要先跑看他多少資料點
temp8(:,:)=temp8(:,:)+YY;
result10{total10}=temp8;
%tY=result10{1,1:3}(1:512)

tY=YY(1:512);

tY=tY'

hold on

otal3=total3+1;
temp6=zeros(512,1); %要先跑看他多少資料點
temp6(:,:)=temp6(:,:)+tY;
result3{total3}=temp6;

%plot(f,2*abs(Y(1:NFFT/2+1)))
plot(f1,tY)
%[a.b]=findpeaks(tY);
%hold on
%plot(x(b),a,'ro')
title('frequency domain')
xlabel('Frequency (Hz)')
ylabel('signal amplitude')
%plot(f1(tY==max(tY)),max(tY),'bo')
text(f1(tY==max(tY)),max(tY),['(',num2str(f1(tY==max(tY))),',',num2str(max(tY)),')'])
%end
end
擷取.PNG

1 条回复


songzy41 发表于 2018-11-29 20:20:42
试试把YY=2*abs(Y(1:NFFT/2+1));改为
YY=2*abs(Y(1:NFFT/2+1),:);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表