dsp.SineWave
生成离散正弦波
描述
的dsp.SineWave
系统对象™生成一个真实的或复杂的,多路正弦信号与独立的振幅,频率和相位在每一个输出通道。
真正的和复杂的正弦曲线,振幅,频率,PhaseOffset属性可以是标量或长度N向量,N在输出通道的数量。当你指定至少一个- - -这些属性的长度N向量,标量值指定的其他属性应用于每一个N频道。
生成离散正弦信号:
创建
dsp.SineWave
对象并设置其属性。调用对象的参数,就好像它是一个函数。
了解更多关于系统对象是如何工作的,看到的系统对象是什么?
创建
描述
创建一个正弦波对象生成一个实值正弦信号的振幅1,100赫兹的频率和相位偏移量为0。默认情况下,生成正弦波对象只有一个样本。正弦
= dsp.SineWave
创建一个正弦波对象与每个指定的属性设置为指定的值。在单引号附上每个属性的名字。正弦
= dsp.SineWave (名称,值
)
例子:正弦= dsp.SineWave(“振幅”,2);
创建一个对象的正弦波振幅属性设置为正弦
= dsp.SineWave (amp,频率,相位,名称,值
)amp
,频率属性设置为频率
,PhaseOffset属性设置为阶段
和任何其他指定的属性设置为指定的值。
属性
属性,除非另有注明nontunable后,这意味着你不能改变它们的值调用对象。对象锁当你叫他们,释放
函数打开它们。
如果一个属性可调在任何时候,你可以改变它的值。
改变属性值的更多信息,请参阅系统设计在MATLAB使用系统对象。
振幅
- - - - - -振幅的正弦波
1
(默认)|标量|向量
正弦波的振幅,指定为以下之一:
标量——一个标量适用于所有频道。
——一个向量N向量包含在每个正弦波的振幅N输出通道。向量的长度必须为指定的一样频率和PhaseOffset属性。
可调:是的
依赖关系
此属性可调只有当你设置方法要么三角函数的
或“差”
。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
频率
- - - - - -正弦波的频率
One hundred.
(默认)|标量|向量
在赫兹频率的正弦波,指定为以下之一:
标量——一个标量适用于所有频道。
——一个向量N向量包含每个正弦波的频率N输出通道。向量的长度必须为指定的一样振幅和PhaseOffset属性。
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
ComplexOutput
- - - - - -国旗表明是否真实的或复杂的波形
假
(默认)|真正的
国旗表明波形是否真实的或复杂的,指定为:
假
——波形输出是真实的。真正的
——波形输出是复杂的。
方法
- - - - - -方法用于生成正弦曲线
三角函数的
(默认)|“查表”
|“差”
方法用于生成正弦曲线,指定为以下之一:
三角函数的
——抽样对象计算正弦信号的连续时间函数。“查表”
——对象预先执行每个独特的样本输出正弦信号的模拟,并根据需要召回样本内存。“差”
——对象使用增量算法。该算法计算输出样本根据输出值计算在先前的样品时间和预先计算的更新。
TableOptimization
- - - - - -优化的正弦值表速度或内存
“速度”
(默认)|“记忆”
速度或内存,优化正弦表值指定为:
“速度”
——表包含k元素,k是输入样本的数量在一个完整周期的正弦波。每个正弦信号的周期必须是一个整数1 /的倍数Fs,在那里Fs的价值吗SampleRate属性值。也就是说,每个元素的频率属性必须的形式Fs/米,在那里米是一个整数大于1
。“记忆”
——表包含k/ 4的元素。
依赖关系
这个属性只适用于当你设置方法
财产“查表”
。
SampleRate
- - - - - -输出信号的采样率
1000年
(默认)|积极的标量
输出信号的采样率Hz,指定为一个积极的标量。
例子:44100年
例子:22050年
SamplesPerFrame
- - - - - -样品每帧的数量
1
(默认)|正整数
数量的连续样本每个正弦信号缓冲到输出帧,指定为一个正整数。
例子:1000年
例子:5000年
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
OutputDataType
- - - - - -数据类型的正弦波输出
“双”
(默认)|“单一”
|“自定义”
正弦波输出的数据类型指定为“双”
,“单一”
,或“自定义”
。
CustomOutputDataType
- - - - - -输出词和部分的长度
numerictype ([], 16)
(默认)|numerictype([], 32岁,30)
输出词和部分长度,指定为一个autosigned数值类型的字长16。
例子:numerictype([], 32岁,30)
例子:numerictype([], 16岁,15)
依赖关系
这个属性只适用于当你设置方法财产“查表”
和OutputDataType财产“自定义”
。
使用
输出参数
sineOut
——正弦波输出
向量|矩阵
正弦波输出,作为一个向量或矩阵返回。的SamplesPerFrame属性决定了在输出矩阵的行数。如果频率或者是PhaseOffset房地产是一个向量,向量的长度确定列数(渠道)在输出矩阵。如果频率
或者是PhaseOffset
属性是一个标量,那么输出矩阵的频道数量是1。
的OutputDataType属性集的数据类型输出。
数据类型:单
|双
|fi
对象的功能
使用一个目标函数,指定系统对象作为第一个输入参数。例如,释放系统资源的系统对象命名obj
使用这个语法:
发行版(obj)
例子
产生一个正弦波信号
生成一个正弦波的振幅2 10赫兹的频率,一个初始阶段的0。
sine1 = dsp.SineWave (10);sine1。SamplesPerFrame = 1000;y = sine1 ();情节(y)
生成两个正弦波相抵消π/ 2的弧度。
sine2 = dsp.SineWave;sine2。频率= 10;sine2。PhaseOffset =[0π/ 2];sine2。SamplesPerFrame = 1000;y = sine2 ();情节(y)
过滤器框架MATLAB的嘈杂的正弦波信号
这个例子展示了如何在MATLAB®低通滤波器噪声信号和可视化最初使用频谱分析仪和过滤信号。对于一个仿真金宝app软件®版本的这个例子中,看到的过滤器框架嘈杂的正弦波信号的仿真软件金宝app。
指定信号源
输入信号是两个正弦波的总和1 kHz频率10 kHz。采样频率是44.1 kHz。
Sine1 = dsp.SineWave (“频率”1 e3,“SampleRate”44.1 e3);Sine2 = dsp.SineWave (“频率”,10 e3,“SampleRate”44.1 e3);
创建低通滤波器
低通滤波器,dsp.LowpassFilter
,设计一个最小订单FIR低通滤波器使用广义雷冷杉滤波器设计算法。设置通带频率为5000赫兹和阻带频率8000赫兹。通带波纹为0.1 dB和阻带衰减是80分贝。
FIRLowPass = dsp.LowpassFilter (“PassbandFrequency”,5000,…“StopbandFrequency”,8000);
创建频谱分析仪
设置频谱分析仪比较原始和过滤信号的功率谱。谱单元dBm。
SpecAna =简介(“PlotAsTwoSidedSpectrum”假的,…“SampleRate”Sine1.SampleRate,…“ShowLegend”,真的,…“YLimits”,-145年,45);SpecAna。ChannelNames = {“原始噪声信号”,…“低通滤过的信号”};
指定样品每帧
这个示例使用框架处理,数据处理一帧。每一帧的数据包含连续样本一个独立的通道。框架处理便于许多信号处理的应用程序,因为你可以同时处理多个样品。通过缓冲数据成帧和处理multisample帧的数据,你可以提高你的信号处理算法的计算时间。样品每帧的数量设置为4000。
Sine1。SamplesPerFrame = 4000;Sine2。SamplesPerFrame = 4000;
过滤器的正弦波信号
添加零均值高斯白噪声的标准差0.1正弦波之和。使用数字滤波器滤波结果。在运行模拟时,频谱分析仪显示频率高于8000赫兹源信号衰减。由此产生的信号峰值保持1 kHz,因为它属于低通滤波器的通带。
为i = 1: 1000 x = Sine1 Sine2 () + () + 0.1。* randn (Sine1.SamplesPerFrame, 1);y = FIRLowPass (x);SpecAna (x, y);结束发行版(SpecAna)
带通滤波的正弦曲线
带通滤波器的离散正弦波信号由三个正弦信号频率,1 kHz, 10 kHz, 15 kHz。
设计一个冷杉Equiripple带通滤波器,首先创建一个带通滤波器设计规范对象,然后使用这些规范设计一个滤波器。
设计带通滤波器
创建一个带通滤波器设计规范对象使用fdesign.bandpass
。
bandpassSpecs = fdesign.bandpass (,Fst1 Fp1 Fp2, Fst2 Ast1,美联社,Ast2”,…1/4,3/8,5/8,6/8,60岁,1、60);
这个对象列表中可用的设计方法。
designmethods (bandpassSpecs)
为类fdesign设计方法。带通(Fp1 Fst1, Fp2, Fst2 Ast1,美联社,Ast2):黄油cheby1 cheby2 ellip equiripple kaiserwin
设计一个Equiripple过滤器的选择“equiripple”
。
bpFilter =设计(bandpassSpecs,“equiripple”,“Systemobject”,真正的)
bpFilter = dsp。FIRFilter属性:结构:“直接形式”NumeratorSource:“财产”分子:[-0.0043 -3.0812 e15汽油0.0136 - 3.7820 e15汽油-0.0180 4.0993 -4.2321 e15汽油7.1634 e-04 e15汽油0.0373 - -4.1057 e15汽油-0.0579 3.7505 e15汽油0.0078 - -3.4246 e15汽油0.1244 - 2.4753 e15汽油0.1244 -0.2737 - 2.4753 -0.2737 - -8.6287 0.3396 - -8.6287 e-16 e-16 e15汽油……]InitialConditions: 0显示所有属性
可视化设计滤波器的频率响应。
fvtool (bpFilter“Fs”,44100)
创建正弦信号
创建一个信号,是一笔三正弦曲线频率1 kHz, 10 kHz, 15 kHz。初始化视图原始信号频谱分析仪和过滤信号。
Sine1 = dsp.SineWave (“频率”1 e3,“SampleRate”,44.1 e3,“SamplesPerFrame”,4000);Sine2 = dsp.SineWave (“频率”,10 e3,“SampleRate”,44.1 e3,“SamplesPerFrame”,4000);Sine3 = dsp.SineWave (“频率”15 e3,“SampleRate”,44.1 e3,“SamplesPerFrame”,4000);SpecAna =简介(“PlotAsTwoSidedSpectrum”假的,…“SampleRate”Sine1.SampleRate,…“ShowLegend”,真的,…“YLimits”,-240年,45);SpecAna。ChannelNames = {“原始噪声信号”,“带通滤过的信号”};
过滤器正弦信号
过滤正弦信号使用的带通滤波器设计。查看原始信号和过滤后的信号频谱分析仪。1 kHz的基调是过滤掉。10 kHz的语气是不受影响,15 kHz的语气是温和的减毒,因为它出现在滤波器的过渡带。
为i = 1: 1000 x = Sine1 Sine2 () + () + Sine3 ();y = bpFilter (x);SpecAna (x, y);结束发行版(SpecAna)
更多关于
正弦信号
实值离散正弦信号的定义是:
在哪里一个振幅,f赫兹是频率,φ是初始阶段,或相抵消,弧度。
一个复杂的正弦信号的定义是:
算法
三角函数
三角函数法计算的正弦信号我th频道,y我通过取样连续函数
一段时间的T年代,你指定T年代在样例。
在每个样本时,在适当的时间值算法计算正弦函数在第一个周期的正弦信号。通过约束三角评估第一个周期的正弦信号,该算法避免了计算的不精确的正弦非常大的数字。这个约束也消除了在扩展操作期间间断的可能性,当一个绝对时间变量可能溢出。因此该方法避免了内存需求表的查找方法以牺牲更多的浮点操作。
查表
查表方法预先执行独特的样本的输出正弦信号的模拟,并根据需要召回样本内存。因为构造有限长度的一个表只能当所有输出序列重复,每一个正弦信号的周期的方法需要输出样本时期整除。也就是说,1 / (f我T年代)=k我必须为每个通道一个整数值吗我= 1,2,…,N。
当正弦值的算法优化表速度
每个通道的表构造包含k我元素。当优化内存
每个通道的表构造包含k我/ 4的元素。
长时间序列,输出表查找方法需要更少的浮点操作比任何其他方法。然而,方法可以要求更多的内存,尤其是对高采样率(长表)。该方法推荐模型,旨在模拟或DSP硬件生成代码,需要优化的执行速度。
请注意
这个对象的查找表是由双精度浮点值。当你使用查表
计算模式中,精度可以达到的最大数量在你的输出是53位。设置输出数据类型值的单词长度大于53位并不能提高输出的精度。
微分
微分方法使用增量算法。该算法计算输出样本根据输出值计算在先前的样品时间(和预先计算的更新计算)利用下面的身份。
更新方程的正弦信号我th频道,y我,因此可以用矩阵形式
你指定T年代在样例。自T年代矩阵是常数,右边是一个常数,可以在仿真计算一次。的价值一个我罪[2πf我(t+T年代)+ϕ我然后计算)从罪(2π的值f我t+ϕ我),因为(2πf我t+ϕ我在每个时间步)通过一个简单的矩阵乘法。
这种模式提供了减少计算负荷,但主题随时间漂移是由于累积的量化误差。因为这个方法不是取决于绝对时间价值,没有危险的不连续扩展操作期间,当一个绝对时间变量可能溢出。
扩展功能
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
这个对象没有可调属性代码生成。
看到系统在MATLAB代码生成对象(MATLAB编码器)。
版本历史
介绍了R2012a
Apri esempio
如果dispone di una versione modificata di questo esempio。Desideri aprire questo esempio con le modifiche星期二吗?
第一MATLAB
海脂肪clic苏联合国collegamento切corrisponde questo第一MATLAB:
Esegui il第一inserendolo所以nella隙缝di第一MATLAB。我浏览器web非supportano金宝app comandi MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。