Skip to main content

How to normalize a highly distorted signal


 

Signal normalization is a common practice in signal processing, especially after a signal has undergone filtering. For example, when using an FIR low-pass filter during the demodulation process of a modulated signal—such as AM or DSB-SC demodulation—you may observe that the first few samples of the demodulated signal exhibit significant transients due to the filtering effect. This occurs because the filter requires approximately N past input samples to produce a steady-state or valid output. To correct for amplitude attenuation, the filtered signal can be normalized to a standard range, such as -1 to 1

 

MATLAB Script

% Parameters for the sine wave
fs = 1000; % Sampling frequency
t = 0:1/fs:1; % Time vector
f = 15; % Frequency of the sine wave

% Example signal: Noisy sine wave
filtered_signal = 0.03*sin(2 * pi * f * t) + 0.05*sin(2 * pi * f * t);
% Step 2: Normalize the filterd signal to the range [-1, +1]
normalized_signal = (filtered_signal - min(filtered_signal)) / (max(filtered_signal) - min(filtered_signal));
normalized_signal = normalized_signal * 2 - 1; % Scale to [-1, +1]


% Original Signal
figure();
plot(t, filtered_signal, 'b', 'LineWidth', 1.5);
title('Filtered Signal');
xlabel('Time (s)');
ylabel('Amplitude');
ylim([-0.1 0.1]);
grid on;

% Normalized Signal
figure();
plot(t, normalized_signal, 'g', 'LineWidth', 1.5);
title('Normalized Signal [-1, +1]');
xlabel('Time (s)');
ylabel('Amplitude');
grid on;

Output








 

 

Copy the MATLAB Code from here 

 


 

Normalize a Highly distorted filtered signal

When normalizing a filtered signal, you may observe that the initial data points are often highly distorted, while the remainder of the signal appears stable. Therefore, it's recommended to discard the first N points (where N is the filter order) before performing normalization.

 

MATLAB script for normalizing a highly distorted filtered signal, where the first few samples are highly transient due to filtering effects

 
 % Parameters for the sine wave
fs = 1000; % Sampling frequency
t = 0:1/fs:1; % Time vector
t1 = N/fs:1/fs:1;
f = 15; % Frequency of the sine wave

% Example signal: Noisy sine wave
filtered_signal = 0.03*sin(2 * pi * f * t) + 0.05*sin(2 * pi * f * t);

N = 10; % N = Filter order
signal1 = filtered_signal(1:N) * 15;
signal2 = filtered_signal(N+1:end);

filtered_signal = [signal1 signal2];


% Normalize the filterd signal to the range [-1, +1] without discarding
% first N-points (N = order of filter)
normalized_signal = (filtered_signal - min(filtered_signal)) / (max(filtered_signal) ...
- min(filtered_signal));
normalized_signal = normalized_signal * 2 - 1; % Scale to [-1, +1]

% Normalize the filterd signal to the range [-1, +1]
normalized_signal1 = (filtered_signal(N+1:end) - min(filtered_signal(N+1:end))) / (max(filtered_signal(N+1:end)) ...
- min(filtered_signal(N+1:end)));
normalized_signal1 = normalized_signal1 * 2 - 1; % Scale to [-1, +1]


% Original Signal
figure();
plot(t, filtered_signal, 'b', 'LineWidth', 1.5);
title('Highly Distorted Filtered Signal');
xlabel('Time (s)');
ylabel('Amplitude');
ylim([-1 1]);
grid on;

% Normalized Signal
figure();
plot(t, normalized_signal, 'g', 'LineWidth', 1.5);
title('Normalized Signal [-1, +1] without discarding first N-points');
xlabel('Time (s)');
ylabel('Amplitude');
grid on;

% Normalized Signal
figure();
plot(t1, normalized_signal1, 'g', 'LineWidth', 1.5);
title('Normalized Signal [-1, +1]');
xlabel('Time (s)');
ylabel('Amplitude');
grid on;

Output 

 
















 Suppose we are using a filter of order N (e.g., 200), which uses N+1 taps (for FIR). The filter requires approximately N past input samples to produce a steady-state or valid output. Therefore, the first N or so samples are based on incomplete data, leading to startup transients. Discarding the first N samples is thus a conservative and practical way to avoid these artifacts.

Further Reading



Contact Us

Name

Email *

Message *

Popular Posts

Q-function in BER vs SNR Calculation (with Simulation)

Q-function in BER vs. SNR Calculation In digital communications and signal processing, the Q-function plays a significant role in predicting system reliability. It allows engineers to quantify the probability that Gaussian noise will exceed a specific threshold, causing a bit error. What is the Q-function? The Q-function is a mathematical function representing the tail probability of the standard normal (Gaussian) distribution. It is the complementary cumulative distribution function (CCDF) of a standard Gaussian distribution. Q(x) = (1 / √(2Ï€)) ∫â‚“∞ e^(-t² / 2) dt Q-Function Interactive Simulator Move the slider to see how the "Tail Probability" (the area in red) changes. This area represents the Probability of Error (BER) . Threshold Distance ( x ) — (Simulates Increasing SNR) x = 1.0 Q(x) = 0.1587 ...

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...(MATLAB Code + Simulator)

Bit Error Rate (BER) & SNR Guide Analyze communication system performance with our interactive simulators and MATLAB tools. 📘 Theory 🧮 Simulators 💻 MATLAB Code 📚 Resources BER Definition SNR Formula BER Calculator MATLAB Comparison 📂 Explore M-ary QAM, PSK, and QPSK Topics ▼ 🧮 Constellation Simulator: M-ary QAM 🧮 Constellation Simulator: M-ary PSK 🧮 BER calculation for ASK, FSK, and PSK 🧮 Approaches to BER vs SNR What is Bit Error Rate (BER)? The BER indicates how many corrupted bits are received compared to the total number of bits sent. It is the primary figure of merit f...

Frequency Shift Keying (FSK) Modulation & Demodulation (with Simulation)

Frequency Shift Keying (FSK) Theoretical Foundations: Frequency Shift Keying (FSK) is a discrete frequency modulation scheme wherein the digital information is encoded via instantaneous shifts in the carrier signal's frequency. The fundamental implementation is Binary FSK (BFSK), which maps binary data onto two distinct, discrete spectral states. A binary '1' (the "mark" state) is represented by a carrier frequency \( f_1 \), while a binary '0' (the "space" state) corresponds to frequency \( f_2 \). Each symbol is sustained for a bit interval denoted by \( T_b \). FSK Transmitter Characterization: The mathematical model for the modulated BFSK output \( s(t) \) is defined as: \[ s(t) = \begin{cases} A_c \cos(2\pi f_1 t), & \text{for } m = 1 \\ A_c \cos(2\pi f_2 t), & \text{for } m = 0 \end{cases} \] ...

FFT Butterfly Method Explained (with Example of 4-point DFT)

  FFT Using Butterfly Method Given: x[n] = {0, 1, 2, 3} Step 1: Split into Even & Odd Even indices: x e = {0, 2} Odd indices: x o = {1, 3} Step 2: 2-point DFT For any {a, b}: DFT = {a + b, a - b} Even Part: E = {0+2, 0-2} = {2, -2} Odd Part: O = {1+3, 1-3} = {4, -2} Step 3: Combine Using Butterfly X[k] = E[k] + W k O[k] X[k + N/2] = E[k] - W k O[k] For N = 4: W 0 = 1 W 1 = -j Final Calculations X[0] = 2 + 4 = 6 X[2] = 2 - 4 = -2 X[1] = -2 + (-j)(-2) = -2 + 2j X[3] = -2 - (-j)(-2) = -2 - 2j Final Answer: X[k] = {6, -2 + 2j, -2, -2 - 2j} Try Interactive Online Simulations Interactive FFT Online Simulator (For understanding Fundamentals)  Interactive FFT Online Simulator (Analyze .CSV, .MP3, .MP4, etc. Further Reading Fourier Transform OFDM Return to Fourier Transform Main Page →

RMS Delay Spread, Excess Delay Spread and Multi-path ...(with MATLAB + Simulator)

📘 Overview of Delay Spread and Multi-path 🧮 Excess Delay spread 🧮 Power delay Profile 🧮 RMS Delay Spread 📚 Further Reading 📂 Other Topics on RMS Delay Spread, Excess Delay ... 🧮 Multipath Components or MPCs 🧮 Online Simulator for Calculating RMS Delay Spread 🧮 Why is there significant multipath in the case of very high frequencies? 🧮 Why RMS Delay Spread is essential for wireless communication? 🧮 Why the Power Delay Profile is essential? 🧮 MATLAB Codes for Calculating Different Types of delay Spreads Delay Spread, Excess Delay Spread, and Multipath (MPCs) The fundamental distinction between wireless and wired connections is that in wireless connections signal reaches at receiver thru multipath signal propagation rather than directed transmission like co-axial cable. Wireless Communication has no set communication path between the transmitter and the receiver. The line...

Pulse Width Modulation (PWM)

Pulse-width modulation (PWM), or pulse-duration modulation (PDM), is a method of controlling the average power delivered by an electrical signal.   Fig: An example of PWM in an idealized inductor driven by a blue line voltage source modulated as a series of sawtooth pulses, resulting in a red line current in the inductor.    Generating a PWM Signal The simplest way to generate a PWM signal is the intersection method, which requires only a sawtooth or a triangle waveform (easily generated using a simple oscillator) and a comparator. When the value of the reference signal is more than the modulation waveform, the PWM signal (magenta) is in the high state; otherwise, it is in the low state.      Duty cycle A low duty cycle equates to low power because the power is off for most of the time; the word duty cycle reflects the ratio of "on" time to the regular interval or "period" of time. The duty cycle is measured in percent, with 100% representing full o...

AM Modulation Online Simulator

Amplitude Modulation Simulator s AM (t) = A c [1 + k a m(t)] cos(ω c t) where, ω = 2πf & k a = Amplitude Sensitivity Modulation index, μ = k a A m Message Frequency (fm): Carrier Frequency (fc): Carrier Amplitude (Ac): Modulation Index (m = Am / Ac):