如何在matlab中比较这些复杂信号?

时间:2014-04-28 23:17:51

标签: matlab signal-processing complex-numbers

所以我有两个信号signal1和signal2,两个信号都是用以下信号启动的:

signal1=zeros(x,1)signal2=zeros(y,1)

信号1的数据看起来像这样

1.0000+1.0000i    
1.0000-1.0000i    
1.0000+1.0000i    
1.0000-1.0000i    
0.0000 + 0000i    
0.0000 - 0000i

我的第一个问题是如何过滤掉值0+0i

如何比较两个信号的位以找出错误?

2 个答案:

答案 0 :(得分:1)

这感觉就像是家庭作业,我讨厌完全解决家庭作业。也许这会有所帮助。

你提到位,所以我猜测“信号”是某种调制数据。我只是从示例数据中猜测QPSK。 QPSK中的P表示相位。我有两个形式为

的函数
    x1=exp(j*m1(t))  

    x2=exp(j*m2(t)),   

其中m1(t)和m2(t)表示在复信号的相位中编码的消息。我真的只想进入m1(t)-m2(t)吗?

虽然你可以单独考虑它们的角度,但是你会遇到没有定义角度的0的麻烦。

我提供了两个公理,指引你朝着我想去的方向前进。

    conj(e(ja))  = e(-ja)
    a^b * a^c  = a^(b+c)

如果您不熟悉matlab帮助“操作”,那么“查找”的帮助可能是最好的开始。许多新人都没有理解*.*之间的区别,尽管这往往是基于他们有多少线性代数背景。后来准备好让matlab和其他人告诉你你做了一些事情,发现你可以用其他方式更有效地做,但从概念上讲,我认为find是一个更容易的起点。

    idx=find(abs(a-b)<.001)    
    idx=find(abs(a-zero)<.001) | abs(b-zero)<.001 )

返回find的表达式为true的索引向量。

apuntured = A; apuntured [IDX] = []; bpunctured = B; bpunctured [IDX] = [];

删除给定索引处的值并打包生成的向量。

对于复数值,函数real()imag()abs()angle()提取矩形和极坐标组件。

答案 1 :(得分:0)

要摆脱零信号,你可以绕过你的信号1。这样的事情(虽然未经测试)

signal3=0;
j=0;
for i=1:size(signal1)
  if(real(signal1(i))==0 && imag(signal1(i))==0)
    signal3(j)=signal(i)
    j=j+1;
  end
end
signal1=signal3;