高通滤波matlab代码
时间: 2023-11-25 08:14:20 浏览: 111
以下是一种高通滤波的MATLAB代码实现方法:
1. 创建一个测试信号(例如正弦波):
t = 0:0.001:1;
f = 10;
x = sin(2*pi*f*t);
2. 计算信号的傅里叶变换(FFT):
y = fft(x);
3. 将FFT转换为双边频谱:
P2 = abs(y/length(x));
P1 = P2(1:length(x)/2+1);
P1(2:end-1) = 2*P1(2:end-1);
f = 1000*(0:(length(x)/2))/length(x);
4. 绘制原始信号的频谱图:
plot(f,P1)
5. 创建一个高通滤波器:
fc = 5; % 截止频率
[b,a] = butter(6,fc/(1000/2),'high');
6. 将滤波器应用于信号:
filtered_x = filter(b,a,x);
7. 计算滤波后信号的FFT:
filtered_y = fft(filtered_x);
8. 将FFT转换为双边频谱:
filtered_P2 = abs(filtered_y/length(filtered_x));
filtered_P1 = filtered_P2(1:length(filtered_x)/2+1);
filtered_P1(2:end-1) = 2*filtered_P1(2:end-1);
filtered_f = 1000*(0:(length(filtered_x)/2))/length(filtered_x);
9. 绘制滤波后信号的频谱图:
plot(filtered_f,filtered_P1)
通过以上代码,就可以实现一个简单的高通滤波器,并对输入信号进行滤波处理。
阅读全文