信号幅频图 matlab
时间: 2023-11-06 13:08:12 浏览: 169
使用Matlab可以画出信号的幅频特性图。可以使用freqs函数绘制连续时间系统的幅频特性图,freqz函数绘制离散时间系统的幅频特性图。在绘制图像时,需要注意选择适当的频率范围和坐标轴刻度,并且可以使用semilogx函数绘制对数坐标轴。常见的滤波器也可以使用Matlab进行设计和分析。在设计滤波器时,可以使用fir1函数设计FIR滤波器,使用cheb1ord、cheby1、cheb2、ellip等函数设计IIR滤波器。在分析滤波器时,可以使用freqz函数分析滤波器幅频特性,使用filter函数进行滤波操作。以下是一个简单例子的Matlab代码:
```
% 生成信号
fs = 1000;
t = 0:1/fs:1-1/fs;
x = sin(2*pi*100*t) + sin(2*pi*200*t) + sin(2*pi*300*t);
% 绘制信号幅频特性图
N = length(x);
Y = fft(x);
P2 = abs(Y/N);
P1 = P2(1:N/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = fs*(0:(N/2))/N;
figure;
semilogx(f,P1);
% 设计滤波器
Wp = [90 110]*2/fs; % 通带边界频率
Ws = [80 120]*2/fs; % 阻带边界频率
Rp = 1; % 通带最大衰减
Rs = 60; % 阻带最小衰减
[n,Ws] = cheb1ord(Wp,Ws,Rp,Rs); % 计算阶数
[b,a] = cheby1(n,Rp,Ws); % 计算滤波器系数
% 绘制滤波器幅频特性图
[H,w] = freqz(b,a);
figure;
semilogx(w*fs/(2*pi),20*log10(abs(H)));
```
--相关问题--:
阅读全文