Gowtham Intern Report
Gowtham Intern Report
Submitted by:
GOWTHAM G
(812621106301)
Dr. V. SUDHA
Associate Professor
1
2
ABSTRACT
3
CHAPTER NO TITLE PAGE
PROBABILITY RANDOM VARIABLES
FOR WIRELESS COMMUNICATIONS
1.1 Wireless channel, Error in Wireless channel 07
1.2 Sample space and Event 08
1.3 Axioms of Probability 08
1.4 Conditional Probability 09
1.5 Baye’s Theorem 10
1.6 Power fading of Wireless channel 10
1.7 Mean, Variance of Random Variables 11
1.8 Gaussian Random Variables 12
1.9 Power Spectral Density for Random WSS Process 13
1.10 PSD Applications in Wireless Channel. 14
2. Key Concepts
2.1 SISO 15
2.2 BER and SNR 15
3.1 BPSK 16
3.2 QPSK 19
LABVIEW PRACTICES
4. NUMERIC FUNCTION
4
4.2 Comparison Functions 23
4.3 Exponential Function 23
4.4 Trigonometric function 23
4.5 Complex Number Function 24
4.6 Statistics function 24
4.7 Signal processing 24
4.8 Special Function 24
5. BOOLEAN FUNCTION
6. COMPARATORS
7. STRING
5
7b.7 Trim Whitespace 30
7b.8 Format into String 31
7b.9 Scan from String 31
7b.10 Math Pattern 31
8. STRUCTURE
6
1.1 WIRELESS CHANNEL, ERROR IN WIRELESS CHANNEL, NOISE IN
WIRELESS CHANNEL
Block Diagram
Wireless Channel
A wireless channel refers to the medium through which wireless communication signals
travel from one device to another. It can be thought of as the path that electromagnetic waves
(used to carry information) take between a transmitter and a receiver.
In the context of wireless communication, errors in the wireless channel refer to discrepancies
or corruptions that occur during the transmission of data between a sender (transmitter) and a
receiver over the wireless medium. These errors can be caused by various factors inherent to
7
wireless communication environments. Here are some common causes and considerations
regarding errors in wireless channels:
• Noise and Interference: External electromagnetic signals or noise from other devices
can interfere with the intended signal, causing errors in data reception.
• Signal Attenuation: As wireless signals travel through space, they lose strength due
to factors such as distance, obstacles (like buildings or walls), and environmental
conditions (such as weather).
• Multipath Propagation: Signals can reach the receiver through multiple paths due to
reflections, which can result in phase shifts and interference, leading to errors.
• Channel Fading: Variations in signal strength over time due to factors like
movement of objects or changes in the propagation environment can cause fading,
leading to errors in signal reception.
Noise in a wireless channel refers to unwanted and random variations in the electromagnetic
signals that propagate through the medium. This noise can originate from various sources and
can degrade the quality of the transmitted information. Here are some key aspects of noise in
a wireless channel:
Sources of Noise:
• External Interference: Signals from other wireless devices or electromagnetic sources
operating in the same frequency band can interfere with the intended signal.
• Thermal Noise: Also known as Johnson-Nyquist noise, it arises from the random
thermal agitation of electrons in conductors and is present in all electronic circuits and
components.
• Atmospheric Noise: Natural sources such as lightning and cosmic radiation can
introduce noise into the wireless channel.
The standard probability axioms are the foundations of probability theory introduced by
Russian mathematician Andrey Kolmogorov in 1933. These axioms remain central and have
direct contributions to mathematics, the physical sciences, and real-world probability cases.
First Axiom
8
The probability of an event is a non-negative real number
Where is the event space.It follows when combined with the second axiom that is always
finite,in contrast with more general measure theory.Theories which assigns negative
probability relax the first axiom.
Second Axiom
P(S) = 1
This is the assumption of unit measure: that the probability that at least one of the elementary
events in the entire sample space will occur is 1.
Third Axiom
P(AuB) = P(A) + P(B) if AnB = Ø
This axiom holds true when the events A and B are disjoint or mutually exclusive because, in
such cases, there is no overlap between their outcomes. Therefore, the total probability of
either A or B occurring (or both) is simply the sum of their individual probabilities.
For example, the probability that any given person has a cough on any given day may be only
5%. But if we know or assume that the person is sick, then they are much more likely to be
coughing. For example, the conditional probability that someone unwell (sick) is coughing
might be 75%, in which case we would have that P(Cough) = 5% and P(Cough Sick) = 75 %.
Although there is a relationship between A and B in this example, such a relationship or
dependence between A and B is not necessary, nor do they have to occur simultaneously.
9
1.5 Baye’s Theorem
In probability theory and statistics, Bayes' theorem (alternatively Bayes' law or Bayes'
rule), named after Thomas Bayes, describes the probability of an event, based on prior
knowledge of conditions that might be related to the event.[1] For example, if the risk of
developing health problems is known to increase with age, Bayes' theorem allows the risk to
an individual of a known age to be assessed more accurately by conditioning it relative to
their age, rather than assuming that the individual is typical of the population as a whole.
Bayes' theorem is stated mathematically as the following equation
10
Block Diagram
11
attempts to summarize or typify a given group of data, illustrating the magnitude and sign of
the data set. Which of these measures is most illuminating depends on what is being
measured, and on context and purpose.
Variance
variance is the expected value of the squared deviation from the mean of a random
variable. The standard deviation (SD) is obtained as the square root of the variance. Variance
is a measure of dispersion, meaning it is a measure of how far a set of numbers is spread out
from their average value.
The variance of a random variable is the expected value of the squared deviation from the
mean of ,
12
The total area under the curve is normalized to one. + the probability integral:
From this definition, we can conclude that RX(τ)𝑅𝑋(𝜏) can be obtained by the inverse Fourier
transform of SX(f)𝑆𝑋(𝑓). That is
13
As we have seen before, if X(t)𝑋(𝑡) is a real-valued random process, then RX(τ)𝑅𝑋(𝜏) is an
even, real-valued function of τ𝜏. From the properties of the Fourier transform, we conclude
that SX(f)𝑆𝑋(𝑓) is also real-valued and an even function of f𝑓. Also, from what we will
discuss later on, we can conclude that SX(f)𝑆𝑋(𝑓) is non-negative for all f𝑓.
Before going any further, let's try to understand the idea behind the PSD. To do so, let's
choose τ=0𝜏=0. We know that expected power in X(t)𝑋(𝑡) is given by
E[X(t)2]=RX(0)=∫∞−∞SX(f)e2jπf⋅0df
=∫∞−∞SX(f)df.
We conclude that the expected power in X(t)𝑋(𝑡) can be obtained by integrating the PSD of
X(t)𝑋(𝑡). This fact helps us to understand why SX(f)𝑆𝑋(𝑓) is called the power spectral density.
In fact, as we will see shortly, we can find the expected power of X(t)𝑋(𝑡) in a specific
frequency range by integrating the PSD over that specific range.
14
2. IMPLEMENTATION OF CODES IN MATLAB
2.1 SISO
SISO in wireless communication stands for Single Input, Single Output. It refers to a
communication system architecture where there is one transmitter sending signals to one
receiver
SISO systems are fundamental in wireless communication, providing a straightforward and
cost-effective solution for many applications where simplicity and cost efficiency are priorities.
However, their performance is limited by channel conditions and lack of diversity compared to
more advanced multiple antenna systems like MIMO.
In a SISO wireless communication system, the basic equation that describes the received
signal y(t) at the receiver can be represented as:
y(t) = h(t)∗x(t)+n(t)
where:
• SNR is a measure of the power of a signal relative to the power of the background
noise present in the communication channel.
• A higher SNR indicates that the signal power is stronger compared to the noise power,
resulting in a better quality signal.
• SNR is usually expressed in decibels (dB) and is calculated as:
where Psignal is the power of the signal and Pnoise is the power of the noise.
15
2. Bit Error Rate (BER):
• BER is a metric that quantifies the number of bit errors that occur in a data
transmission over a communication channel.
• A lower BER indicates better data transmission quality, as it implies fewer errors in
the received data.
• BER is usually expressed as a ratio (e.g., 1 error in 10^6 bits transmitted).
• In general, a higher SNR leads to a lower BER. This is because a higher SNR implies
a better signal quality relative to the noise, making it easier for the receiver to
distinguish between the transmitted signal and the noise.
• As the SNR increases, the probability of errors in the received data decreases,
resulting in a lower BER.
However, it's important to note that the relationship between SNR and BER is not linear and
can vary depending on the modulation scheme, coding scheme, and characteristics of the
communication channel.
16
constellation = exp(i*2*pi.*a/2); %To store constellation points ie. 1+0j and -1+0j in
complex double
%number of symbols in simulation
nsymbols = 100000; %Change it to 10,00,000 > represents number of symbols used for
stimulation.
snr = 0:0.01:10; %We change SNR from 1-10 dB.
%We assume the input signal to be -1 for all symbols.
number_snrs = length(snr); %Number of snr values to check
perr_estimate = zeros(number_snrs,1); %To estimate error for each SNR value and add it to
estimate
for k=1:number_snrs %SNR for loop
snr_now = snr(k); %The current value of snr being tested for BER.
ebno=10^(snr_now/10); %We convert snr from dB to decimal unit.
sigma=sqrt(1/(ebno)); %The corresponding varience for noise.
% add 2d Gaussian noise to our symbols.
received = -1 + sigma*randn(nsymbols,1)+j*sigma*randn(nsymbols,1); % To add complex
WBGN noise to our input signal -1.
decisions=zeros(nsymbols,1); %We initialize decisions with zeros corresponding to all n
symbols.
for n=1:nsymbols %Symbol for loop to compute distance which is used to stimulate
recieved signal being 1 or -1.
distances = abs(received(n)-constellation); %It stores a vector of absolute distance
%from each of the constellation points 1 and -1.
[min_dist,decisions(n)] = min(distances); %We store the minimum of those distances
with memory location
%(which will be 1 if the point is closer to the constellation
point1
%and 2 if the point is closer to the constellation point -1.)
end
for n=1:nsymbols %We know that value of 2 is decisions correspond to recieved signal
being -1 so we replace that with -1.
%Which mean no error occured for this bit due to AWGN.
if decisions(n)~=1
17
decisions(n)=-1; %This will replace all non 1 values with -1 , since its BPSK we can
only have 1 or -1 as symbols.
end
end
errors = (decisions ~= -1); %All non -1 results are errors (as our recieved signal is 1
different from input signal of -1)
%and stored in errors.
Waveform
18
3.2 QPSK
Code
%I intend to demonstrate QPSK modulation and Demodulation with gray labling and without
gray labeling.
%I took the input signal as -1 everytime to make implementation a little
%faster. I then added the AWGN with unit mean and compare it with
%constellation.
%closer to 1 I have a bit error and count all such errors for all values of
%SNR. I have taken 10^5 and 10^6 bits of signal in this experiment.
%I have not used any modules to hope for faster implementation of code.
19
close all; %closes all other workable windows
%———Input Fields————————
nsymbols = 200000; % represents number of symbols used for stimulation. ie 10^5.
%Generating nsymbols random 2 bit symbols to use for DQPSK
input=zeros(1,nsymbols);
for k=1:nsymbols %Loop to generate 2 bit random inputs symbols.
input(k)= randi([0, (2^2-1)]); %randomly generates a 2 bit number between 0 and 3
including both of them.
end
EbN0dB = 0:0.1:10; % multiple Eb/N0 values from 0-10 dB
inputc=constellation(input(:)+1); %will have the constellation symbols for non gray
input_gray=gre(input(:)+1);%will get the corresponding gray input for the same constellation
input.
inputc=inputc.'; %Taking non conjugate transpose of input signal
20
sigma=sqrt(1/(2*ebno)); %The corresponding varience for noise.
21
num_gray=zeros(nsymbols,1);
%For gray encoded
for s=1:nsymbols
d_gray=de2bi(decisions_gray(s),2); %To get a zero padded 2 bit binary string for ease of
comparing.
i_bin=de2bi(input_gray(s),2); %To get a zero padded 2 bit binary string for ease of
comparing.
biterror=0; %To count error per bit
for t=1:2
if d_gray~=i_bin(t)
biterror=biterror+1; %adding error for each incorrectly decieded bit.
end
num_gray(s)=biterror; %To store the total bit error for each word
end
end
errors_gray= num_gray;
%BER calculations for that snr.
perr_estimate(k) =perr_estimate(k)+ sum(error)/(nsymbols); %This gives BER per symbol.
perr_estimate_gray(k) =perr_estimate_gray(k)+ sum(errors_gray)/(nsymbols); %This
gives BER per symbol. as we are adding error for each of the 4 symbols
end
semilogy(EbN0dB,perr_estimate); %To plot the BER per nsymbols with EbN0dB.
hold on; %To add both data in the same plot
semilogy(EbN0dB,perr_estimate_gray); %To plot the BER per nsymbols with EbN0dB.
hold on;
semilogy(EbN0dB,qfunc((sqrt(10.^(EbN0dB/10))))); % To plot BER theoretical using Q-
function .
legend("Experimental BER without gray ","Experimental BER with gray code","Theoretical
using Q function"); %To all legend
xlabel("EbN0dB (dB)"); %To add EbN0dB label to x axis
22
ylabel("BER "); %To add BER label to y axis. its BER per symbol
WAVEFORM
4. LABVIEW PRACTICES
Introduction
In this presentation, we will explore the revolutionary smart sensing system in
LabVIEW for data acquisition. We will delve into the capabilities and applications of this
advanced technology.ng
Overview
In LabVIEW, a graphical programming environment from National Instruments,
smart signal sensing systems often utilize various numeric functions to process and analyze
data. These functions are fundamental for signal processing, data acquisition, and control
applications. Here are some commonly used numeric functions in LabVIEW for smart signal-
sensing systems:
23
4.1. Basic Arithmetic Operations
• Addition (+): Adds two numbers.
• Subtraction (-): Subtracts one number from another.
• Multiplication (*): Multiplies two numbers.
• Division (/): Divides one number by another.
24
• Phase Angle: Computes the phase angle of a complex number.
• Complex Addition, Subtraction, Multiplication, Division: Performs arithmetic
operations on complex numbers.
These functions are accessible through LabVIEW’s extensive library of VIs (Virtual
Instruments) and provide a robust foundation for building complex numeric-based
applications. Each function can be easily integrated into LabVIEW programs, enabling the
efficient development of sophisticated measurement and control systems.
25
5. BOOLEAN FUNCTION
LabVIEW provides a comprehensive set of Boolean functions that are essential for decision-
making processes, logical operations, and control structures in various applications. Below is
an overview of key Boolean functions available in LabVIEW
26
• NAND: Returns TRUE if not all inputs are TRUE (inverse of AND).
• NOR: Returns TRUE if all inputs are FALSE (inverse of OR).
• XOR (Exclusive OR): Returns TRUE if an odd number of inputs are TRUE.
• XNOR (Exclusive NOR): Returns TRUE if an even number of inputs are TRUE
(inverse
Summary
27
LabVIEW's Boolean functions are powerful tools for implementing logic operations and
control structures in your applications. By combining Boolean controls, indicators, and
functions, you can create complex logical operations and decision-making processes that are
essential for developing robust and responsive systems.
6. Comparator
In LabVIEW, comparators are used to compare numeric values, arrays, or other data types to
determine the relationship between them. These comparisons can be used to control program
flow, trigger events, and perform logical operations. Comparators return Boolean values
indicating the result of the comparison (true or false). Here’s a detailed overview of
comparators in LabVIEW
7. String
In LabVIEW, strings are used to represent and manipulate text data. String functions
are essential for a wide range of applications, such as user interfaces, data logging,
communication protocols, and file I/O. Here is a detailed overview of string handling in
LabVIEW, including common string functions, controls, indicators, and practical examples.
29
2. String Indicators: Used to display text data to the user (e.g., labels, status messages).
2. Block Diagram
• Use the `Concatenate Strings` function from the Functions Palette.
• Wire `String1` and `String2` to the inputs of the `Concatenate Strings` function.
• Wire the output of the `Concatenate Strings` function to the `Result` string indicator.
30
Advanced String Manipulations
1. String Parsing
Use functions like `Scan from String` to extract numbers or other data from a string
based on a specified format.
2. Regular Expressions
Use the `Match Pattern` function to perform advanced pattern matching with regular
expressions.
3. File I/O with Strings:
Read from and write to text files using string functions like `Read Text File` and
`Write Text File`.
Practical Applications
1. Building User Interfaces
- Use string controls and indicators to allow users to input and view text data.
2. Data Logging
- Format data into strings for logging purposes, such as saving measurements with
timestamps.
3. Communication Protocols
- Construct and purse strings to send and receive data over serial ports, network
connections, etc.
Place controls and indicators as needed for the specific string operations
(e.g.: concatenation, search and replace).
2. Block Diagram
• Wire the appropriate string functions to implement the desired operations.
• Ensure inputs are properly connected to the string controls and outputs are wired to
the string indicators Accessing String Functions:
1. Open LabVIEW.
2. Go to the Block Diagram (press “Ctrl+E” to toggle between Front Panel and Block
Diagram).
3. Right-click to open the Functions Palette.
4. Navigate to Programming -> String.
Summary
LabVIEW provides a rich set of string functions that enable you to manipulate text
data effectively. Whether you are building user interfaces, processing text files, or handling
communication protocols, understanding and using string functions in LabVIEW is crucial.
By mastering these functions, you can create robust applications that handle text data
efficiently and effectively.
32
8. STRUCTURE
Structures in LabVIEW are essential for creating the flow control of a program. They
provide the necessary constructs for looping, decision-making, and handling parallel processes.
Here’s an overview of the primary structures available in LabVIEW, along with examples and
use cases.
33
The While Loop executes its sub-diagram until a specified condition is met. It is similar
to the For Loop but does not require a predetermined number of iterations.
1. Front Panel
• Array control for input values (e.g., `Input Array`).
• Numeric indicator to display the sum (e.g., `Sum`).
2. Block Diagram
34
• Place a For Loop structure.
• Wire the `Input Array` control to the loop’s boundary to enable auto-indexing.
• Use a shift register to accumulate the sum of array elements.
• After the loop, wire the accumulated sum to the `Sum` indicator.
35
8.4. Sequence Structure
The Sequence Structure ensures that code segments execute in a specific order. There
are two types: Flat Sequence and Stacked Sequence. Flat Sequence is preferred for better
readability.
36
• Increment a counter each time the button is clicked and update the `Click Count`
indicator
37
2. Go to the Block Diagram (press `Ctrl+E` to toggle between Front Panel and Block
Diagram).
3. Right-click to open the Functions Palette.
4. Navigate to Programming -> Structures.
Summary
Structures in LabVIEW are crucial for controlling the flow of a program. They allow
you to implement loops, conditional execution, event handling, and precise timing.
Understanding and utilizing these structures effectively can help you build robust and efficient
LabVIEW applications.
Introduction:
Generalized Frequency Division Multiplexing or GFDM is another multicarrier scheme
which is based on the traditional multi-carrier filter bank concept. GFDM is another technique
which is being used digitally in the implementation of 5G. Particularly, it is a transceiver
concept contained with varying features which hold significant importance in scenarios which
show high degree of spectrum fragmentation. As we have studied earlier, the use of Orthogonal
Frequency Division Multiplexing (OFDM) poses multiple challenges in its multicarrier
scheme. To avoid this, a generalized version of OFDM was devised which came to be known
as GFDM. GFDM primarily characterizes to show a low out of band emission which is
achieved by flexible time-domain pulse shaping of individual subcarriers. Unlike its
counterpart OFDM, GFDM is able to transmit a group of symbols at a particular instant of
38
time.It can be well suitable for various 5G scenarios by changing the pulse shaping filters,
number of sub-symbols and sub-carriers.The BER performance of the GFDM system mainly
depends on characteristics of pulse shaping filter.GFDM employs a single cyclic prefix (CP)
for several time-slots, increasing the spectral efficiency.GFDM can transmit multiple symbols,
at different time slots, per each sub-carrier.Aiming to improve spectral efficiency and reduce
out-of-band emissions.
As denoted in the above figure, we can see a GFDM transceiver divided among two
major sections, consisting of several blocks which carry out the GFDM signal transmission
process. The design of an ideal transceiver poses a big challenge as it should comply with the
following constraints in its function. In context of TV UHF signals as mentioned above, they
should avoid harmful interference by legacy TV signals and thus show ultra-low out of band
39
radiation. But at the same instant, they should ensure high sensitivity in order to explore white
spaces in the spectrum to interact with weaker signals as well. Therefore, it becomes further
more necessary to design a system that can cop with strong spectrum fragmentation. To tackle
these constraints, the GFDM transceiver is wide band and complies with a range of necessities.
As mentioned, it emits low out of band radiation to avoid interference. It has a flexible signal
bandwidth and a more versatile white space allocation, which furthers it agility and efficiency
as a multi carrier scheme. GFDM is implemented digitally which also reduces the analogue
front-end complexity and deepens the measures with increased accuracy. As mentioned
previously, GFDM provides with reduced demand of large subcarriers as the data transmission
in GFDM is carried out with a time frequency block manner, with which we are able to measure
the performance of a GFDM system using the Peak to Average Power Ratio (PAPR). PAPR in
GFDM is less as compared to OFDM when it is measured with the equal spectral efficiency
condition due to the reduced requirement of large subcarriers. It is also known, that the pulse
shaping property of GFDM is responsible for controlling the out of band radiation. However,
due to this, a self-induced interference is brought about in the system. And thus, a Cyclic Prefix
is added to the entire block as shown in the figure to make GFDM relatively more spectrally
efficient in comparison with OFDM.
In a GFDM system,
• Transmitter: Random binary data is generated and processed through encoding stages
like convolutional and Hamming encoders. The encoded data is modulated using
GFDM techniques, where multiple subcarriers are used to transmit data simultaneously.
Each subcarrier is shaped by a pulse shaping filter to control its spectral characteristics.
• Receiver: The received GFDM signal undergoes demodulation where the cyclic prefix
(if applied) is removed, and FFT is used to convert the frequency domain signal back
to the time domain. Channel estimation techniques may be employed to compensate for
channel effects and equalize the received data. The received signal is then decoded to
recover the original transmitted data.
Key features,
• Flexible Waveform Design: GFDM allows for versatile shaping of waveforms using
different filters.
• Multi-Carrier Transmission: Similar to OFDM, GFDM divides spectrum into
subcarriers for simultaneous data transmission.
• Efficient Spectrum Use: GFDM optimizes spectrum usage without strict subcarrier
orthogonality.
• Low Out-of-Band Emissions: Minimizes interference with other systems through
effective filtering.
• Resilience to Fading: Robust against frequency-selective fading due to adaptive
waveform design.
• Channel Equalization: Uses algorithms to mitigate channel distortions and improve
reliability.
• Applications: Suitable for next-gen wireless networks, IoT, and various
communication scenarios.
• Performance Metrics: Evaluated by BER and SNR for effectiveness in different
environments.
40
GFDM's adaptability, efficiency, and robust performance make it promising for future
wireless communication standards and applications.
GFDM transmitter in which the input parameters such as IQ gain imbalance in decibels, the
roll-off factor and filter defining function such as RRC and RC can be taken as user defined.
The constellation size of QAM can also be defined according to the user defined specifications.
The generated GFDM complex symbols are shown in front panel of the LABVIEW. The time
domain GFDM signal is generated, and it is plotted with the graph. The pink colour datatype
input is IQ Data Queue which stores the values from executed program. The programming
structure was taken from the reference. The OFDM is integrated with MIMO using USRP
devices in virtual and remote lab. The signal processing tools using RF communications
module was used. The transceiver with different flow chart for transmitter and receiver
separately was explained.
41
GFDM TRANSMITTER DIAGRAM 2
42
OUTPUTS OF GFDM TRANSMITTER AND RECEIVER
43
OUTPUT OF GFDM RECEIVER
CONCLUSION
In Conclusion, we successfully designed and implemented a GFDM communication
system using LabVIEW for both the transmitter and receiver sections. The transmitter section
effectively generated random binary data, encoded it through convolutional and Hamming
encoders, and modulated it using various pulse shaping filters such as Root Raised Cosine
(RRC), Raised Cosine (RC), and Gaussian filters. The modulated signals were visualized in
LabVIEW's front panel and stored for further analysis.
On the receiver side, we demodulated the received GFDM signals by removing the cyclic
prefix, applying FFT to convert them from frequency domain to time domain, and using zero
padding to process the data. Channel estimation algorithms were employed to compensate for
channel distortions and improve the quality of the received signals. The decoded signals
underwent BER analysis to evaluate the system's performance under different Signal-to-Noise
Ratio (SNR) conditions
Throughout the project, LabVIEW proved to be an effective tool for implementing and
visualizing the complex signal processing stages of GFDM. The modular approach allowed for
a detailed examination of each processing block, facilitating a deeper understanding of
GFDM's practical implementation aspects.
The results demonstrated that GFDM offers advantages such as flexible waveform design,
efficient spectrum utilization, and robust performance against frequency-selective fading. The
system's ability to mitigate channel impairments through adaptive equalization techniques
further enhances its reliability in practical communication scenarios. In the end, this report
highlights the feasibility and effectiveness of GFDM in digital communication systems using
LabVIEW, paving the way for future developments in wireless communication technologies.
44