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$ Commented Oct 7, 2017 at 17:54
  • $\begingroup$ I'm thinking yes, it's easiest answer. $\endgroup$ Commented Oct 8, 2017 at 2:04

1 Answer 1


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$ Commented Oct 8, 2017 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
    Commented Oct 8, 2017 at 6:42
  • $\begingroup$ No, it's simply Hilbert transform and I'm shocked since its output isn't complex. $\endgroup$ Commented Oct 8, 2017 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
    Commented Oct 8, 2017 at 15:08
  • $\begingroup$ Hilbert's command working differently since it told on it's document: Discrete-time analytic signal using Hilbert transform $\endgroup$ Commented Oct 8, 2017 at 18:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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