使用matlab采集声卡信号后,如何显示动态声音波形?
ai=analoginput('winsound')addchannel(ai,1);durationn=1;ai.samplerate=11000;ai.trigger...
ai=analoginput('winsound')
addchannel(ai,1);
durationn=1;
ai.samplerate=11000;
ai.triggertype='immediate';
start(ai)
data=getdata(ai); 展开
addchannel(ai,1);
durationn=1;
ai.samplerate=11000;
ai.triggertype='immediate';
start(ai)
data=getdata(ai); 展开
2个回答
展开全部
用循环或者定时器 隔一段时间读取数据绘图?
t = timer('TimerFcn',@callback, 'Period', 10.0);
set(t, 'ExecutionMode', 'FixedSpacing')
start(t)
%%数据满足要求后
stop(t)
delete(t)
function callback(obj, event, string_arg)
ai=analoginput('winsound');
addchannel(ai,1);
ai.samplerate=11000;
ai.triggertype='immediate';
start(ai);
[data,time,abstime,events] = getdata(ai);
plot(data);
t = timer('TimerFcn',@callback, 'Period', 10.0);
set(t, 'ExecutionMode', 'FixedSpacing')
start(t)
%%数据满足要求后
stop(t)
delete(t)
function callback(obj, event, string_arg)
ai=analoginput('winsound');
addchannel(ai,1);
ai.samplerate=11000;
ai.triggertype='immediate';
start(ai);
[data,time,abstime,events] = getdata(ai);
plot(data);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
深圳市容大彩晶科技有限公司
2024-11-20 广告
2024-11-20 广告
作为深圳市容大彩晶科技有限公司的工作人员,我可以确认**我们的广告机支持USB接口和SD卡读取**。无论是车载液晶广告机还是其他类型的广告机产品,都具备这一功能,便于用户通过USB或SD卡更新和播放视频、图片等广告内容。这一设计大大提升了广...
点击进入详情页
本回答由深圳市容大彩晶科技有限公司提供
展开全部
在matlab中怎样对声卡进行实时采集数据
对语音信号采集,有两种方法来实现。
方法一:采用对声卡产生一个模拟输入对象的方式进行采集。数据采集过程可以分为四步:
1) 初始化。Matlab将声卡等设备都作对象处理,其后的一切操作都不与硬件直接相关,而是通过对该对象的操作来作用于硬件设备,所以首先要对声卡产生一个模拟输入对象:
ai = analoginput (’winsound’) ;
ai ——Matlab 中的变量,它是一个模拟输入设备对象句柄,所有的数据采集过程都是通过对该句柄的操作来实现;
analoginput ( ) ——模拟输入设备对象建立函数,通过该函数将A/ D 转换硬件映射为Matlab workspace 中的一个模拟输入设备对象句柄;
winsound——声卡设备驱动程序,Matlab 软件内含该驱动程序。
2) 配置。给ai对象添加通道,设置采样频率。
addchannel (ai ,1);%添加通道
fs = 8000; %采样频率设置为8KHz
ai.SampleRate = fs ;%设置采样频率
3) 采样。启动设备对象,开始采集数据。
t = 2s ; %设定采样时间
start (ai); %启动设备对象
data = get (ai ,t *fs) ; %获得采样数据
4) 终止。停止对象并删除对象。
stop (ai) ;
delete (ai) ;
这样便完成了一次完整的数据采集过程,采样频率和采样时间都是由用户输入的,十分方便。
方法二:是直接利用MATLAB数据采集箱中提供的的函数命令进行采集,即wavrecord 。wavrecord是利用Windows 音频输入设备记录声音, 其调用格式为:
y=wavrecord(n ,fs ,ch ,dtype) ;
本命令是得到数字化的语音数据串,,可直接作为Matlab变量参与各种运算,式中n 为采样的点数,决定了录音长度;fs为采样频率,默认值为11025Hz,还可根据要求自己选择合适的采样率;ch为声道数,默认值为1,表示单声道,如果指定为2,则采样为双声道立体声数据;dtype为采样数据的存储格式,用字符串指定,可以是‘double’、‘single’、‘int16’、‘int8’,指定存储格式的同时也就规定了每个采样值量化的精度,int8 对应8 位精度采样,其他都是16 位采样精度。
使用Matlab 的wavread 函数也可以采集语音。不过wavread 函数只能读取计算机中已有的、扩展名为“.wav”的声音文件。其调用形式为: y=wavread (file)
对语音信号采集,有两种方法来实现。
方法一:采用对声卡产生一个模拟输入对象的方式进行采集。数据采集过程可以分为四步:
1) 初始化。Matlab将声卡等设备都作对象处理,其后的一切操作都不与硬件直接相关,而是通过对该对象的操作来作用于硬件设备,所以首先要对声卡产生一个模拟输入对象:
ai = analoginput (’winsound’) ;
ai ——Matlab 中的变量,它是一个模拟输入设备对象句柄,所有的数据采集过程都是通过对该句柄的操作来实现;
analoginput ( ) ——模拟输入设备对象建立函数,通过该函数将A/ D 转换硬件映射为Matlab workspace 中的一个模拟输入设备对象句柄;
winsound——声卡设备驱动程序,Matlab 软件内含该驱动程序。
2) 配置。给ai对象添加通道,设置采样频率。
addchannel (ai ,1);%添加通道
fs = 8000; %采样频率设置为8KHz
ai.SampleRate = fs ;%设置采样频率
3) 采样。启动设备对象,开始采集数据。
t = 2s ; %设定采样时间
start (ai); %启动设备对象
data = get (ai ,t *fs) ; %获得采样数据
4) 终止。停止对象并删除对象。
stop (ai) ;
delete (ai) ;
这样便完成了一次完整的数据采集过程,采样频率和采样时间都是由用户输入的,十分方便。
方法二:是直接利用MATLAB数据采集箱中提供的的函数命令进行采集,即wavrecord 。wavrecord是利用Windows 音频输入设备记录声音, 其调用格式为:
y=wavrecord(n ,fs ,ch ,dtype) ;
本命令是得到数字化的语音数据串,,可直接作为Matlab变量参与各种运算,式中n 为采样的点数,决定了录音长度;fs为采样频率,默认值为11025Hz,还可根据要求自己选择合适的采样率;ch为声道数,默认值为1,表示单声道,如果指定为2,则采样为双声道立体声数据;dtype为采样数据的存储格式,用字符串指定,可以是‘double’、‘single’、‘int16’、‘int8’,指定存储格式的同时也就规定了每个采样值量化的精度,int8 对应8 位精度采样,其他都是16 位采样精度。
使用Matlab 的wavread 函数也可以采集语音。不过wavread 函数只能读取计算机中已有的、扩展名为“.wav”的声音文件。其调用形式为: y=wavread (file)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询