资源简介
修改程序能够实现加窗插值FFT算法的matlab仿真,已经得到实验验证,注解清晰详细,代码可读性强,以512点为例进行仿真计算,对与其他点数,如256或是1024可以通过简单修改即可
代码片段和文件信息
fs=6400;N=512; %采样频率和数据点数
f0=50;%原信号频率
n=0:N-1;
t=n/fs; %时间序列
s=10*sin(100*pi*t+pi/3)+0.3*sin(200*pi*t+pi/4)+...
+0.6*sin(300*pi*t+pi/6)+0.1*sin(400*pi*t+pi/3)+...
+0.5*sin(500*pi*t+pi/4)+0.1*sin(600*pi*t+pi/5)+...
0.2*sin(700*pi*t+pi/10); %信号
w = 0.5-0.5*cos(2*pi*n./N);%汉宁窗函数
x = s.*w;%加窗
figure(1);
subplot(211);
plot(tx);
xlabel(‘t‘);
ylabel(‘x‘);
title(‘信号时域波形‘);
grid;
y=fft(xN); %对信号进行快速Fourier变换
%wd=atan(imag(y(5))/real(y(5)));
vz=abs(y)/256*2;%未经插值的谐波系数%在FFT后为了求幅值一般 进行计算abs(y)*2/N,N是FFT的点数。2是hanning窗的恢复系数。
f=(0:length(y)-1)‘*fs/length(y);
figure(1);
subplot(212);
plot(fvz);
axis([01000010]);
xlabel(‘频率(Hz)‘);
ylabel(‘幅值‘);
title(‘信号幅频谱图‘);
grid;
u=abs(y);%准备插值
A=zeros(17);%修正后幅值存储
Ph1=zeros(17);%有改动Ph
Ph2=zeros(17);%有改动Ph
Ph=zeros(17);%有改动Ph
%插值运算
for I=0:6
y1=u(floor(4*I+5));
y2=u(floor(4*I+6));
yy2=y2;
y3=u(floor(4*I+4));
yy3=y3;
max=y2;
if y3>y2
max=y3;
end
if max==y3;
t=y1;
y1=max;
y2=t;
end
b=(y2-y1)/(y2+y1);
a=1.5*b;
A(I+1)=(y1+y2)*(2.35619403+1.15543682*a^2+0.32607873*a^4+0.07891461*a^6)/512;%谐波波幅值
if yy2>=yy3
Ph1(I+1)=atan(imag(y(4*I+6))/real(y(4*I+6)))+pi/2-pi*(a+0.5);%谐波相角值 左减右加
end
if yy2 Ph2(I+1)=atan(imag(y(4*I+4))/real(y(4*I+4)))+pi/2-pi*(a-0.5);%谐波相角值 左减右加
end
Ph=Ph1+Ph2;
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1573 2014-03-07 09:44 jiachuangchazhi512.m
----------- --------- ---------- ----- ----
1573 1
相关资源
- 基于kaiser窗的双谱线插值FFT谐波分析
- 使用matlab对采样数据文本进行fft变换
- 自己编写的二维快速傅里叶变换fft程
- Matlab实现二维傅里叶变换FFT2
- 空气湍流相位屏scr_fft.m
- 2048点FFTmatlab程序
- 非均匀快速傅里叶变换(nufft)最原始
- 多相滤波器和IFFT快速傅里叶变换实现
- spectrogram_fft
- matlab-acq GPS C/A码捕获 用的是fft频域的
- txlb 数字图像处理中的滤波和傅里叶压
- FBMCEXFFT 对FBMC通信系统进行仿真
- Epilepsy-EEG-report--- 在学习了数字信号处
- Fftfile-of-EEG 可以用FFT频谱对脑电信号
-
CS-ba
sed-on-FFT-or-DWT 图像压缩感知 - pipeilvbo 匹配滤波器的实现。主要是通
- hanning11 加汉宁窗fft插值算法
- PMF-FFT-GPS GPS 捕获跟踪程序
- 利用FFT做波束成形 主要和加权累加法
- 时域抽取法基2FFT源程序
- FFT谐波分析
- matlab开发-FastFFTFunction
- FFT和IFFT的MATLAB实现代码
- fft变换的matlab代码
- 基二时间抽取的MATLAB代码
- Matlab的时间抽取基2FFT算法
- 基于MATLAB实现的任意点基2FFT算法
- 对一段音频进行fft处理
- 用matlab fft信号频谱分析
- FFT变换的MATLAB程序实现
评论
共有 条评论