Signal spectrum have two side, positive and negative. I want to make these separate in two signal, by MATALB SIMULINK. But how? I can't find it's block on DSP or communication toolbox. I found a block that interactively generate filter, but this filters response is conjugate symmetric and that's not my desire. As replica of Fat32 : Hilbert approach not worked?!! Hilbert approach

  • 1
    $\begingroup$ what you're looking for sounds like the analytic signal; maybe that's a term that helps you find a good solution? $\endgroup$ – Marcus Müller Oct 7 '17 at 17:54
  • $\begingroup$ I'm thinking yes, it's easiest answer. $\endgroup$ – mohammadsdtmnd Oct 8 '17 at 2:04

If you do not have a single side band separation block-diagram in Simulink, then you would try the following algorithm to separate the upper sideband from the lower sideband given that you have a block called Hilbert transformer.

Given that your original real valued baseband input signal is $x[n]$, then the following signal is called as the analytic signal:

$$ x^+[n] = x[n] + j \hat{x}[n] $$ where $$\hat{x}[n] = \mathcal{H} \{x[n] \} = \frac{1}{\pi n} \star x[n]$$ is called as the Hilbert transform of the signal $x[n]$.

It can be shown that the Fourier spectrum of the analytic signal is: $$ X^+(\omega) = \begin{cases} 2 X(\omega) &, \text{for } ~~~ 0 < \omega < \pi \\ 0 &, \text{for } ~~~ -\pi < \omega < 0\\ \end{cases} $$

Which is 2x the upper side band of the signal $x[n]$

  • $\begingroup$ It seems right but why this is not working? I have used your approach but it not worked, I attached it picture to my question. $\endgroup$ – mohammadsdtmnd Oct 8 '17 at 2:48
  • $\begingroup$ Matlab Hilbert function returns the analytic signal $x^+$ instead of the sole Hilbert transform of the signal $\hat{x}$ so you don't have to add $x$ to it. Look at your documentation to see if Siulink Hilbert block also does the same ? $\endgroup$ – Fat32 Oct 8 '17 at 6:42
  • $\begingroup$ No, it's simply Hilbert transform and I'm shocked since its output isn't complex. $\endgroup$ – mohammadsdtmnd Oct 8 '17 at 13:01
  • $\begingroup$ There's nothing to shock. The output of a (theoretical) Hilbert transform is real (given the input is real). What's complex is the analytic signal. Matlab function y=hilbert(x) however returns the complex analytic signal $x^+ = x + j \hat{x} $ instead $\endgroup$ – Fat32 Oct 8 '17 at 15:08
  • $\begingroup$ Hilbert's command working differently since it told on it's document: Discrete-time analytic signal using Hilbert transform $\endgroup$ – mohammadsdtmnd Oct 8 '17 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.