MATLAB信号处理与应用 读书笔记 一

完成了基本操作,今天组数也正常,需要对应解决fsctrl文件中的信号处理相关

  • 重点关注4傅里叶变换,6FIR滤波器,10信号处理中的应用
  • 字符的链接['aa','bb'];
N1=8;N2=16;
n=0:N-1;k1=0:N1-1;k2=0:N2-1;
w=2*pi*(0:2047)/2048;
Xw=(1-exp(-j*4*w))./(1-exp(-j*w));
xn=[(n>=0)&(n<=4)];
X1k=fft(xn,N1);
X2k=fft(xn,N2);
subplot(3,2,1);
plot(w/pi,abs(Xw));
xlabel('w/pi');ylabel('X1');
subplot(3,2,2);
plot(w/pi,angle(Xw));
  • FFT用DFT原理,理解起来还是吃力
Fs=1000;
T=1/Fs;  %采样周期
L=2000;
t=(0:L-1)*T;    %绘图的时间点
x=0.7*sin(2*pi*50*t)+sin(2*pi*700*t);   %真实信号
y=x+2*randn(size(t));   %噪声叠加
subplot(121);
% plot(Fs*t(1:50),y(1:50));
plot(Fs*t,x);
title('时域图');
xlabel('t(s)');
ylabel('y(t)');
NFFT=2^(nextpow2(L));
Y=fft(y,NFFT)/L;
f=Fs/2*linspace(0,1,NFFT/2+1);
subplot(122);
plot(f,2*abs(Y(1:NFFT/2+1)));
title('频谱');
xlabel('f');
ylabel('|Y(f)|');

FFT绘图部分,原信号:

叠加上随机噪声

plot画图,画连续的也需要进行点数离散化,点数够多,看起来就是连续的;

NFFT=2^(nextpow2(L)); %得到离采样点数最近的指数

第一个要点,需要得到采样点对应的指数,这个指数在FFT中需要,若不是最近的指数,则求出的

实际使用L代替NFFT,得到的频点值完全是对应信号值,所以NFFT值意义在哪?

Y=fft(y,NFFT)/L;   

y的值和点数进行FFT计算,结果除以y进行归一化;

f=Fs/2*linspace(0,1,NFFT/2+1); 

用Linspace得到0~1内NFFT个点值,再乘以FS/2得到奈奎斯特采样区间轴

plot(f,2*abs(Y(1:NFFT/2+1))); 

对应的Y取绝对值,实际为幅值,因为求得的Y为实数,由于频谱折叠,所以要乘以2。如若不加abs,则信号谱的虚部将被忽略,造成幅值很小。

如果用全谱来看,则fs/2是保留奈奎斯特区间,abs是得实部虚部幅值,2*是将折叠得幅值相加。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值