加窗fft matlab,求助!fft加窗变换的问题!

clc;

close all;

clear;

A1=20; %频率F1信号的扰动幅度

A2=19; %频率F2信号的扰动幅度

F1=50; %信号1频率(Hz)

F2=50; %信号2频率(Hz)

Fs=12800; %采样频率(Hz)

P1=30; %信号1相位(度)

P2=30.001; %信号2相位(度)

N=12800; %采样点数

n=[0:N-1];

t=[0:1:N-1]/Fs; %采样时刻

%信号

H=220*sqrt(2)*cos(2*pi*F1*t+pi*60/180);

H1=220*sqrt(2)*cos(2*pi*F2*t+pi*60.01/180);

%加窗

S=hamming(N)'.*H(1:N);

S1=hamming(N)'.*H1(1:N);

figure(1)

%显示原始信号

subplot(321);plot(t,H);

title('标准信号');

subplot(322);plot(t,H1);

title('被测信号');

%信号加窗

subplot(323);plot(t(1:N),S(1:N));

title('标准信号加窗');

subplot(324);plot(t(1:N),S1(1:N));

title('被测信号加窗');

Y = fft(S,N); %做FFT变换

Y1=fft(S1,N);

fuzhi = (abs(Y)); %取模

fuzhi1=(abs(Y1));

fuzhi=fuzhi/(N/2);   %换算成实际的幅度

F=([1:N]-1)*Fs/N; %换算成实际的频率值,Fn=(n-1)*Fs/N  f=fs*(0:length(Y)/2)/length(Y);

subplot(325);

stem(F(1:N/2),fuzhi(1:N/2));   %显示换算后的FFT模值结果

title('幅度-频率曲线图');

fuzhi1=fuzhi1/(N/2);   %换算成实际的幅度

F=([1:N]-1)*Fs/N; %换算成实际的频率值,Fn=(n-1)*Fs/N

subplot(326);

stem(F(1:N/2),fuzhi1(1:N/2));   %显示换算后的FFT模值结果

title('幅度-频率曲线图');

Pyy=[1:N/2];

for i=1:N/2

xiangwei(i)=phase(Y(i)); %计算相位

xiangwei(i)=xiangwei(i)*180/pi; %换算为角度

end;

figure(2)

Hline1=stem(F(1:N/2),xiangwei(1:N/2));   %显示相位图

hold on;

Pyy1=[1:N/2];

for i=1:N/2

xiangwei1(i)=angle(Y1(i)); %计算相位

xiangwei1(i)=xiangwei1(i)*180/pi; %换算为角度

end;

Hline2=stem(F(1:N/2),xiangwei1(1:N/2),'r');   %显示相位图

title('相位-频率曲线图');

bicha=abs((fuzhi-fuzhi1)/fuzhi);

jiaocha=xiangwei-xiangwei1;

这个程序运行了之后50赫兹幅值的旁边49Hz,51Hz有俩个小的,不知道是怎么进来的,怎么弄都拿不掉。我想弄掉它,看看各位大侠有没有什么良策。还有就是相位图的49Hz,51Hz位置上的相位也不对!麻烦各位大神帮忙研究一下!本来想船图片,但是传不上去啊!明天看看传一下!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值