资源简介

本资源内包含一个matlab源代码和一个纯净的音乐信号,通过对音乐信号加高频余弦噪声,得到掺杂高频余弦噪声的音乐信号;后通过设计巴特沃斯低通滤波器以及频域分析,实现高频噪声的去除,重新得到纯净的音乐信号。

资源截图

代码片段和文件信息

clear all;close all;clc
%读入音乐文件y;采样频率为fs
[yfs]=audioread(‘Clean.wav‘);
x=y(:1)‘;
%sound(xfs);%播放音乐文件
N=length(x);%音乐文件的采样点数总和(采样长度)
fft_x=fft(xN);%音乐信号的傅里叶变换
w=fs/N*(0:N-1);%频谱空间的谱线间隔矩阵,即采样频率间隔,fs为歌曲的采样频率,它最高
figure(1)subplot(211);plot(x)title(‘音乐信号波形‘);
subplot(212)plot(wfft_x)title(‘音乐信号频谱‘);
%加入余弦信号噪声
n=0:1/2048:1/2048*(N-1);%产生余弦信号的自变量矩阵
x1=0.1*cos(10000*pi*n);%高频余弦信号,频率可以更改
fft_x1=fft(x1N);%余弦信号的傅里叶变换
figure(2)subplot(121)plot(nx1);title(‘余弦噪声波形‘);xlabel(‘n‘);%余弦频率太高,图上显示是一片蓝,这是因为图上分辨率达不到余弦信号的频率,若想看到余弦信号,减小余弦信号的频率即可
subplot(122)plot(wabs(fft_x1));title(‘余弦噪声频谱‘);xlabel(‘w‘);
%将音乐信号与余弦信号相加
y1=x+x1;
fft_y1=fft(y1N);%叠加噪声音乐信号的频谱
%播放
sound(y1fs);
figure(3)subplot(121)plot(y1)title(‘叠加噪声后音乐信号‘)%显示叠加噪声后音乐信号
subplot(122)plot(abs(fft_y1))

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      50044  2018-11-15 13:05  Clean.wav

     文件       1746  2018-11-21 10:25  Music_Filtering.m

----------- ---------  ---------- -----  ----

                51790                    2


评论

共有 条评论