在树莓派上实现带通滤波器
这个例子展示了如何使用Simulink®支持包为树莓派™硬件使用DS金宝appP系统工具金宝app箱™设计一个带通滤波器。
先决条件
有关如何使用树莓派硬件的Simulink支持包在树莓派硬件上运行Simulin金宝appk模型的金宝app详细信息,请参见树莓派硬件的Simulink支持包入门金宝app金宝app.
有关如何开始在树莓派上使用音频信号处理应用程序的更多信息,请参见开始使用树莓派进行音频信号处理.
所需的硬件
树莓派硬件板
USB麦克风
以太网电缆
移动电话或任何以WAV格式播放音频的音频源
硬件设置
在硬件设置对话框中的网络设置屏幕上,选择
直接连接到主机
避免网络延迟。将USB麦克风连接到树莓派硬件板上。
配置Simulink金宝app模型和校准参数
本例使用树莓派硬件的Simulink支持包中的预配置Simulink金宝app模型。金宝app
要打开Simulink模金宝app型,请在MATLAB®命令窗口中运行此命令。
open_system (“raspberrypi_audio_digitalFilter”)
在模拟模式下,可以使用滑块调整的频率正弦波(DSP系统工具箱)1000hz到8000hz。在代码生成模式下,您可以在树莓派硬件上部署Simulink模型,并连接麦克风以生成声学正金宝app弦波。
模拟源
滑动板控制正弦波块的频率参数。配置滑块块参数对话框。
连接滑块到正弦波频率参数。
设置最大而且最低参数
8000
而且1000
,分别。
配置正弦波(DSP系统工具箱)块参数对话框。
集频率(赫兹)来
1000
.集样品时间来
1/44100
.集每帧样本来
4410
.中设置值的1/10样品时间参数。
树莓派传感器和输入
您可以使用音频捕获将麦克风与树莓派硬件板连接,以捕捉音频信号。配置音频捕获块参数对话框。
1.进入设备名称与树莓派硬件接口的USB麦克风。要找到您的设备名称,请在MATLAB命令窗口中执行这些命令。
a.建立与树莓派硬件的连接。
覆盆子“树莓派IP地址”,“用户名”,“密码”);
b.列出树莓派硬件所连接的输入设备。
a = listAudioDevices(r,“捕捉”)
一个=
带字段的结构:
名称:“USB-Audio-USBPnPSoundDevice”设备:“2,0”通道:{'1'}BitDepth:{'16位整数'}SamplingRate: {'44100' '48000'}
的设备字段一个
输出是设备标识符。
使用此格式输入设备名称.
“plughw:设备ID > <”
例如,如果设备字段为2,0,回车“plughw: 2 0”
.
的插头控件中指定的速率、格式和通道音频捕获“块参数”对话框,并使它们与音频设备的输出兼容。
2.属性中的值指定音频设备读取或发送数据的数据类型设备位深下拉。从
函数中指定的参数值listAudioDevices
BitDepth
字段。
3.进入通道数(C)金宝app音频设备支持。从
函数中指定的参数值listAudioDevices
渠道
字段。
算法
的默认位置手动开关是否上正弦波接收到数据模拟源区域。
设计一个带通滤波器数字滤波器设计(DSP系统工具箱)块。该滤波器的阶数为260,允许频率范围超过3500hz和低于5500 Hz。
配置数字滤波器设计(DSP系统工具箱)块参数对话框。
1.在响应部分中,选择带通
.
2.在频率的规范节,设置这些参数。
一个。单位来赫兹
b。Fs来44100
c。Fstop1来3000
d。Fpass1来3500
e。Fpass2来5500
f。Fstop2来6000
3.在大小规格节,设置这些参数。
一个。Astop1来95
b。apas来1
c。Astop2来95
的当前过滤器信息部分详细介绍了所设计滤波器的结构、顺序、稳定性和来源。的震级响应(dB)节显示了与上述规格相对应的过滤器。
的子系统块算法区域接收过滤后的和原始频率作为输入。这个子系统比较的振幅原始而且过滤后的在带通范围内的频率发出信号并输出逻辑1。
要打开子系统,请在MATLAB命令窗口中运行此命令。
open_system (“raspberrypi_audio_digitalFilter /子系统”)
显示和可视化
在显示和可视化区域,可以在时间范围和频谱分析仪上查看原始信号和滤波后的信号。
树莓派执行器和输出
的输出。子系统块算法的输入领导块树莓派执行器和输出区域。的灯也连接到从LED接收的输入。如果滤波信号的相对幅度大于0.75,即频率位于滤波器的带通滤波器频率范围内的信号,灯就会发光。
运行Si金宝appmulink模型与节奏
1.位置的手动开关在模拟源控件的模拟输出正弦波(DSP系统工具箱)块。
2.在模拟选项卡中的Simuli金宝appnk模型,选择运行>模拟踱来踱去.
3.在模拟起搏选项对话框中,选择启用节奏减慢模拟.选择此选项时,指定的速度将自动应用于模拟。
4.选择模型运行时的配速,方法是使用滑块或在每个挂钟秒的模拟时间字段。
5.点击运行.
6.通过移动滑块改变正弦波的频率,观察频谱分析仪和时间范围。
a.设置开关频率正弦波(DSP系统工具箱)到3000hz以下的值,例如2400hz。观察Spectrum Analyzer Original、Time Scope和Spectrum Analyzer Filtered三个块的输出。信号不通过带通滤波器。在时间范围块的第二个端口中看不到输出。灯不发光。
b.设置开关频率正弦波(DSP系统工具箱)到任何高于5500 Hz的频率,例如6500 Hz。观察Spectrum Analyzer Original、Time Scope和Spectrum Analyzer Filtered三个块的输出。信号不通过带通滤波器。在时间范围块的第二个端口中没有可见输出。灯不发光。
c.设置开关频率正弦波(DSP系统工具箱)到3000hz到5500 Hz之间的任何频率,例如4000hz。观察Spectrum Analyzer Original、Time Scope和Spectrum Analyzer Filtered三个块的输出。信号通过带通滤波器,灯就会发光。
金宝app仿真模式中的Simulink模型
频谱分析仪原始输出
频谱分析仪滤波输出
观察4000hz的峰值。
时间范围输出
生成WAV文件使用createAudio
函数
分别生成1000hz、4000hz和8000hz三种音频信号createAudio
函数。有关的更多信息createAudio
函数,请参见使用createAudio函数生成。wav文件章节。开始使用树莓派进行音频信号处理的例子。
1.创建一个频率为1000hz,信号持续时间为60秒,采样频率为44100hz的音频信号。
createAudio(1000、1000、44100)
的createAudio
函数在示例的当前目录中生成一个WAV文件1000年hz_1000hz_60sec.wav.
2.创建一个频率为4000hz,信号持续时间为60秒,采样频率为44100hz的音频信号。
createAudio(4000、4000、44100)
的createAudio
函数在示例的当前目录中生成一个WAV文件4000年hz_4000hz_60sec.wav.
3.创建一个频率为8000hz,信号持续时间为60秒,采样频率为44100hz的音频信号。
createAudio(8000、8000、44100)
的createAudio
函数在示例的当前目录中生成一个WAV文件8000年hz_8000hz_60sec.wav.
转移1000年hz_1000hz_60sec.wav,4000年hz_4000hz_60sec.wav,8000年hz_8000hz_60sec.wav文件到你的手机。
在树莓派硬件上金宝app部署Simulink模型
1.位置的手动开关在算法控件的输出音频捕获块Rapsberry Pi传感器和输入区域。
2.在硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击监视和调优.
3.玩1000年hz_1000hz_60sec.wav将文件放在靠近与树莓派硬件板接口的USB麦克风的地方。
你可以在频谱分析仪上观察到这个音频信号。
4.观察频谱分析仪和时间范围块上的输出。
频谱分析仪滤波输出
信号被衰减,没有通过带通滤波器,灯不发光。
时间范围输出
5.玩4000年hz_4000hz_60sec.wav将文件放在靠近与树莓派硬件板接口的USB麦克风的地方。
你可以在频谱分析仪上观察到这个音频信号。
6.观察频谱分析仪和时间范围块上的输出。
频谱分析仪滤波输出
信号通过带通滤波器,峰值出现在4000hz,灯就会发光。
时间范围输出
7.玩8000年hz_8000hz_60sec.wav将文件放在靠近与树莓派硬件板接口的USB麦克风的地方。
观察频谱分析仪上的音频信号。
8.观察频谱分析仪和时间范围块上的输出。
频谱分析仪滤波输出
信号被衰减,没有通过带通滤波器,灯不发光。
时间范围输出
其他可以尝试的事情
设计一个不同于带通滤波器的滤波器数字滤波器设计(DSP系统工具箱)块。
为带通滤波器设计一个具有不同停止频率和通频率的滤波器。
改变带通滤波器的阶数,观察不同输入频率在频谱分析仪和时间范围上的输出。