【发布时间】:2011-04-03 02:43:23
【问题描述】:
我有一个比特数组,如下面的,我需要在它们上面放一个载波。问题是:这是否可以在不循环的情况下完成?
例如,假设您正在使用频移键控。如果该位为“1”,则信号应为频率为 10,000 Hz 的正弦波,如果该位为“0”,则信号应为频率为 8,000 Hz 的正弦波。
位数组:
bits = [0 0 0 1 0 1 1 0 1 0 1 0 1 0 1 0 1]
循环代码:
for i = 1:length(bits)
if bits(i) == 1
signal = [signal sin(2*pi*10000*t)]
else
signal = [signal sin(2*pi*8000*t)]
end
end
如果我可以在一个操作中执行所有这些操作而无需循环,那就太好了。
谢谢。
【问题讨论】:
-
t是向量还是标量?它在循环内改变吗?循环结束时signal的大小是多少? -
如果你有足够的内存,你总是可以用比特数乘以比特时间长度来展开循环。
-
@d'o-o'b:“位”永远不会改变,所以我想这使它成为一个标量。长度(信号)= 长度(位)。
标签: arrays matlab signal-processing