前言
本次项目为数字信号处理课程项目,项目全部采用matlab GUI编程,已上传至github/git_dsp
项目要求如下:
- 至少实现 1 种音效测试分析功能(频率响应,瀑布频谱图,相位响应曲线,抗阻曲线,谐波失真曲线,互调失真曲线,音压曲线等);
- 至少实现 1 种语音处理功能(声纹识别,关键词识别,语音去噪,声源分离等),并分别对其进行实际应用;
matlab对git的支持
为了方便修改,本次项目使用了git,并托管到github上。
matlab对Git有很好的支持,文件栏处右击源代码管理,可以直接对文件进行添加、提交、推送到github。
所用函数功能一览
名称 | 格式 | 项目内用法 |
---|---|---|
abs | abs(fft_sample) | 求fft后样本模值 |
angel | angle(ph_y0) | 求fft后样本相角 |
audioplayer | h.player=audioplayer(h.CSample,h.Fs) | 创建音频播放器 |
audioread | [h.Sample,h.Fs]=audioread(h.Filepath) | 读取音频文件 |
audiowrite | audiowrite() | 输出音频 |
colorbar | colorbar(ax) | 创建颜色栏 |
colormap | colormap(hot) | 改变语谱图颜色 |
delete | delete(gcf) | 关闭窗口 |
fft | fft(sample,nfft) | 对样本进行快速傅里叶变换 |
fftshift | fftshift(y) | 以中心为零,频域循环移位 |
gcf | set(gcf, | 当前窗口句柄 |
guidata | guidata(hObject, handles) | 更新句柄 |
isempty | isempty(handles.Sample) | 判断样本是否为空 |
isstrprop | str(isstrprop(str,’digit’)) | 求字符串内数字 |
length | length(sample) | 求样本长度 |
mean | mean(handles.Sample) | 求样本均值 |
movegui | movegui(gcf,’center’) | 窗口居中 |
nargin | nargin | GUI输入参数个数 |
nargout | varargout{1:nargout} | GUI输出参数个数 |
pow2 | pow2(nextpow2(sample_length)) | 求2的次方 |
nextpow2 | nextpow2(sample_length) | 求最小nfft使,2^nfft≥len |
round | round(get(hObject,’Value’),2) | 求指定有效数位约值 |
size | size(handles.Sample) | 求音频通道数 |
spectrogram | spectrogram(sample,1024,512,nfft,fs) | 绘制语谱图 |
std | std(handles.CSample) | 求样本标准差 |
struct | struct(‘gui_Name’,mfilename, … | 构造GUI参数、回调函数</ |