用Matlab繪制一段音頻信號在時域上的波形圖,然后用低通濾波器濾掉噪音并再次繪制
1、導入音頻文件
filename = 'X:\1.mp3'; % 替換為你的音頻文件路徑
[x, Fs] = audioread(filename);
2、獲取音頻信號長度
len = length(x);
3、計算時間軸
t = (0:len-1) / Fs;
4、繪制音頻信號在時域上的波形圖
figure;
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Audio Signal in Time Domain');
5、設計并應用低通濾波器
cutoff_frequency = 2600; % 截止頻率為2600 Hz
normalized_cutoff = cutoff_frequency / (Fs/2);
order = 8; % 濾波器階數
[b, a] = butter(order, normalized_cutoff, 'low');filtered_x = filter(b, a, x);
6、繪制濾波后的音頻信號在時域上的波形圖
subplot(2,1,2);
plot(t, filtered_x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Filtered Audio Signal in Time Domain');
總:
% 導入音頻文件
filename = 'C:\Users\ahiii\Desktop\1.mp3'; % 替換為你的音頻文件路徑
[x, Fs] = audioread(filename);% 獲取音頻信號長度
len = length(x);% 計算時間軸
t = (0:len-1) / Fs;% 繪制音頻信號在時域上的波形圖
figure;
plot(t, x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Audio Signal in Time Domain');% 設計低通濾波器
cutoff_frequency = 2600; % 截止頻率為2600 Hz
normalized_cutoff = cutoff_frequency / (Fs/2);
order = 8; % 濾波器階數
[b, a] = butter(order, normalized_cutoff, 'low');% 應用低通濾波器
filtered_x = filter(b, a, x);% 繪制濾波后的音頻信號在時域上的波形圖
subplot(2,1,2);
plot(t, filtered_x);
xlabel('Time (s)');
ylabel('Amplitude');
title('Filtered Audio Signal in Time Domain');
效果: