# LMS7002 Digital Filtering for HF

**URL:** <https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564>\
**Category:** LimeSDR\
**Created:** [8 December 2016 16:21 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564 "2016-12-08T16:21:07Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![martywittrock](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/martywittrock/32/66_2.png) [@martywittrock](https://discourse.myriadrf.org/u/martywittrock)\
**Post date:** [8 December 2016 16:21 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/1 "2016-12-08T16:21:07Z")

</div>

I’m hearing through sources that there is digital filtering in the LMS7002 that currently is optimized for higher bands, but may not be optimized for HF. The source mentioned:

“…I visited LimeSDR developers team and had a long discussion about their SDR products, especially LimeSDR. I found that low RF bands limit is not only RF front end limitation, it also defined by LMS7002 digital filtering, etc…”

Now before anyone replies about the confusion on the matching networks and this digital filtering let me make it clear that they are completely separate issues - that the matching networks have known performance curves that are more suitable for VHF to SHF, but are usable in HF but not optimal. That can be overcome by designing and building other input circuitry to supplant the current design if needed - and I would think that for those that want to use their LimeSDRs in the HF range someone is going to work that issue and come up with a mod for that. I’m certainly thinking hard on that.

But it’s the digital filtering in the LMS7002 that can’t easily be overcome right now. It’s, from what I’ve been advised, intrinsic to the design of the LimeSDR as it is now, but it would be great if we knew how to resolve that issue to provide the LMS7002 better performance in the HF range (2.0 - 30 MHz, but it would be great if it could be extended to 56 MHz).

Who can shed light on this subject? Since the LimeSDR is open source, how can we obtain better performance from the digital filtering for HF?

Advise at your soonest - thanks, Marty (KN0CK)

---

<div class="post-metadata">

**Author:** ![andrewback](https://avatars.discourse-cdn.com/v4/letter/a/22d042/32.png) [@andrewback](https://discourse.myriadrf.org/u/andrewback)\
**Post date:** [12 December 2016 11:40 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/2 "2016-12-12T11:40:16Z")

</div>

Hi Marty,

I’m not sure where you heard this from, but please be assured that there is no such digital filtering.

Regards,

Andrew

---

<div class="post-metadata">

**Author:** ![danny](https://avatars.discourse-cdn.com/v4/letter/d/848f3c/32.png) [@danny](https://discourse.myriadrf.org/u/danny)\
**Post date:** [12 December 2016 14:33 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/3 "2016-12-12T14:33:04Z")

</div>

Hello Marty, there is optional digital filtering on the LMS7002M in the TSP and RSP sections of the GUI. Normally they are turned off. GUI has ‘bypass’ switches for these, GFIR1, GFIR2 and GFIR3.

For a HF receiver. You would need to set the LO to 30MHz. This will ‘up convert’ your signal to around 30MHz. You would need to set the analogue LPF settings to around 40MHz. Then you can use the NCO and CMIX in RSP to downconvert your signal. Or down convert in your sofware receiver.

---

<div class="post-metadata">

**Author:** ![papatoux](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/papatoux/32/672_2.png) [@papatoux](https://discourse.myriadrf.org/u/papatoux)\
**Post date:** [7 April 2017 16:03 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/4 "2017-04-07T16:03:39Z")

</div>

Hi Andrew, All  
As said by Danny, GFIR 1 to 3 are bypassed (by default) in the RxTSP section (or sheet).  
Moreover I have an issue about the FIR content display when I press the “Coefficient” button (see image below).  
Is there any correction about this issue ?

 ![](https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/1X/96bea6efdab5bd061964eb2b829a1bbf9a6193f0.png)  
Anybody could help about de GFIR format file (.fir) ?

The use of a decimation factor (clock factor) and LPF FIR (Digital Down Converter) should improve the receiving chain.  
I have tested the NCO function. Works fine.  
Regards.

---

<div class="post-metadata">

**Author:** ![martywittrock](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/martywittrock/32/66_2.png) [@martywittrock](https://discourse.myriadrf.org/u/martywittrock)\
**Post date:** [7 April 2017 19:07 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/5 "2017-04-07T19:07:26Z")

</div>

@papatoux, @danny,

I’m going to try this tonight to see what the result will be for HF performance - not that it’s lacking very much, but it would be interesting to see if the receive chain improves as a part of the changes to the digital filtering on the LMS7002. I’ll let you know my findings - stay tuned…

@andrewback: Andrew, with all due respect, when you answer that there’s ‘…no such digital filtering…’ and two LimeSDR users find digital filtering (GFIR and FIR) within the LMS7002 it’s leaning hard on the issue of credibility of the answers. Hey, no kidding, can you please confirm things with the Hardware Team at Lime Microsystems before you answer on issues that we’re all very anxious to know? I mean, we’re all trying to make the Lime an even bigger success here… - Thanks.

73 de Marty, KN0CK

---

<div class="post-metadata">

**Author:** ![papatoux](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/papatoux/32/672_2.png) [@papatoux](https://discourse.myriadrf.org/u/papatoux)\
**Post date:** [7 April 2017 20:44 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/6 "2017-04-07T20:44:36Z")

</div>

More information here :  
[https://wiki.myriadrf.org/LimeMicro:LMS7002M\_Datasheet#Functional\_block\_diagram](https://wiki.myriadrf.org/LimeMicro:LMS7002M_Datasheet#Functional_block_diagram)  
[https://wiki.myriadrf.org/images/thumb/5/5d/Lms7002m-tsp-rx.png/550px-Lms7002m-tsp-rx.png](https://wiki.myriadrf.org/images/thumb/5/5d/Lms7002m-tsp-rx.png/550px-Lms7002m-tsp-rx.png)  
And here [http://www.limemicro.com/wp-content/uploads/2015/10/LMS7002M-Programming-and-Calibration-Guide-v2.25.0.pdf](http://www.limemicro.com/wp-content/uploads/2015/10/LMS7002M-Programming-and-Calibration-Guide-v2.25.0.pdf)  
See chapter A2.14 RxTSP(A/B) Control Diagram

Regards & 73 JJ F1EHN

---

<div class="post-metadata">

**Author:** ![Axeman](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/axeman/32/728_2.png) [@Axeman](https://discourse.myriadrf.org/u/Axeman)\
**Post date:** [7 April 2017 21:49 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/7 "2017-04-07T21:49:14Z")

</div>

Thanks for that link to the programming guide. If I ever get my LimeSDR I am going to have to reduce my sleeping time in half in order to do all of the things I am planning in my head.

---

<div class="post-metadata">

**Author:** ![andrewback](https://avatars.discourse-cdn.com/v4/letter/a/22d042/32.png) [@andrewback](https://discourse.myriadrf.org/u/andrewback)\
**Post date:** [8 April 2017 08:00 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/8 "2017-04-08T08:00:09Z")

</div>

Hello Marty,

You will be relieved to hear that at the time I did indeed check with the engineering team that there is no digital filtering in the signal chain by default and was told that is the case. I don’t believe this has changed, but if it has I am sure that @Zack will be able to confirm.

Regards,

Andrew

---

<div class="post-metadata">

**Author:** ![martywittrock](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/martywittrock/32/66_2.png) [@martywittrock](https://discourse.myriadrf.org/u/martywittrock)\
**Post date:** [8 April 2017 14:03 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/9 "2017-04-08T14:03:07Z")

</div>

@andrewback,

In Zack We Trust… 🙂

73 de Marty, KN0CK

---

<div class="post-metadata">

**Author:** ![papatoux](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/papatoux/32/672_2.png) [@papatoux](https://discourse.myriadrf.org/u/papatoux)\
**Post date:** [8 April 2017 16:24 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/10 "2017-04-08T16:24:31Z")

</div>

@andrewback, @martywittrock  
As I said in my previous post, all the digital filtering chain is documented.  
I have tested the NCO (runs well), IQ correction (runs well) but the GFIRs are set to “zero” and of course are bypassed to allow to ouput the data Stream.  
There is a display issue in the LimeSuite app. [https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/1X/96bea6efdab5bd061964eb2b829a1bbf9a6193f0.png](https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/1X/96bea6efdab5bd061964eb2b829a1bbf9a6193f0.png)  
It is impossible to see and edit the GFIR coeff. I saved the file and I saw all coeff are set to “0”. The memory addressing exists. So should be OK with a set of good coeff.  
Andrew, is it possible to get an example of a GFIR format. The GFIR are also documented in the "LMS7002M – Multi-Band, Multi-Standard MIMO RF Transceiver IC

- Programming and Calibration Guide -" but an example could help.  
Thank you.  
Regards.  
JJ F1EHN

---

<div class="post-metadata">

**Author:** ![Zack](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/zack/32/89_2.png) [@Zack](https://discourse.myriadrf.org/u/Zack)\
**Post date:** [10 April 2017 08:19 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/11 "2017-04-10T08:19:10Z")

</div>

> [@martywittrock](#):
>
> In Zack We Trust… 🙂

Thanks and noted for the next 1st of April 😈

Regarding digital filtering:

1. All the digital filters are enabled by default, i.e. after LMS7002M reset.
2. If we do not need digital filters, we just bypass them in ini file. Hence GFIRs are bypassed in ini file, used by SDR Console, for instance. GFIRs are bypassed in ini file used for simple test examples too.

> [@martywittrock](#):
>
> “…I visited LimeSDR developers team and had a long discussion about their SDR products, especially LimeSDR. I found that low RF bands limit is not only RF front end limitation, it also defined by LMS7002 digital filtering, etc…”

I commented on this some time ago in other thread. Again - low RF bands are not limited by digital filtering. How this would be possible at all?

---

<div class="post-metadata">

**Author:** ![Zack](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/zack/32/89_2.png) [@Zack](https://discourse.myriadrf.org/u/Zack)\
**Post date:** [10 April 2017 08:41 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/12 "2017-04-10T08:41:11Z")

</div>

Hello @papatoux,

> [@papatoux](#):
>
> Moreover I have an issue about the FIR content display when I press the “Coefficient” button (see image below).  
> Is there any correction about this issue ?

What OS are you using? We tried on Win10 and Win7 - everything looks OK.  
What version of LimeSuiteGUI?

---

<div class="post-metadata">

**Author:** ![Zack](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/zack/32/89_2.png) [@Zack](https://discourse.myriadrf.org/u/Zack)\
**Post date:** [10 April 2017 11:12 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/13 "2017-04-10T11:12:31Z")

</div>

Hello @papatoux,

> [@papatoux](#):
>
> is it possible to get an example of a GFIR format. The GFIR are also documented in the "LMS7002M – Multi-Band, Multi-Standard MIMO RF Transceiver IC
> 
> - Programming and Calibration Guide -" but an example could help.

You should check [LMS7002M Datasheet](http://www.limemicro.com/wp-content/uploads/2015/09/LMS7002M-Data-Sheet-v2.8.0.pdf) as well. There is a chapter “General Purpose FIR Filters” which gives more explanation.

Filter coefficients have to be in range of +/-1 (normalized) or in range of -32768 to 32767 (in this case it will be normalized automatically by software).

One important thing to understand is Internal Filter Length L, which is calculated as L = roundup(N/5) for GFIR1 and GFIR2 and L = roundup(N/15) for GFIR3, where N is FIR filter length.  
All the filter coefficients virtually are divided to 5 groups of 8 coefficients for GFIR1/2 and to 15 groups of 8 for GFIR3. So, the parameter L specify, how many first positions of each octet should be occupied by filter coefficients.  
Let us consider Inverse SINC filter from the datasheet, coefficients are given in Figure 19. It is 5 tap FIR filter. Hence the fir file will be as follows:

> /\* \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
> FILE: invsinc.fir  
> DESCRIPTION: Inverse sinc, positive.  
> Number of taps = 5, GFIR L should be set to L=5/5=1  
> \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* \*/  
> 0.0101318,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> -0.0616455,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0.855469,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> -0.0616455,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0.0101318,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0,  
> 0

So, we supply all 40 coefficients for GFIR1/2. Parameter L in this case is L = roundup(5/5) = 1. It means that first position of each octet must be occupied while other should be zeroes, as you can see in the example.

Let me know if you will have any further questions.

---

<div class="post-metadata">

**Author:** ![papatoux](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/papatoux/32/672_2.png) [@papatoux](https://discourse.myriadrf.org/u/papatoux)\
**Post date:** [10 April 2017 20:15 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/14 "2017-04-10T20:15:39Z")

</div>

Hello @Zack  
My OS is W10 Pro. The LimeSuite Gui version is 17.02.1 - PothosSDR-20170312-vc1.  
The GFIR display is like this :  
[![](https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/1X/96bea6efdab5bd061964eb2b829a1bbf9a6193f0.png) ](https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/1X/96bea6efdab5bd061964eb2b829a1bbf9a6193f0.png)  
Regards.  
JJ

---

<div class="post-metadata">

**Author:** ![papatoux](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/papatoux/32/672_2.png) [@papatoux](https://discourse.myriadrf.org/u/papatoux)\
**Post date:** [10 April 2017 20:27 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/15 "2017-04-10T20:27:19Z")

</div>

Hello @Zack  
Thank you for your help.  
It is clearer, now !  
I am glad to see all digital filtering chain is implemented into the LMS7002. II will test ASAP…  
Regards.  
JJ

---

<div class="post-metadata">

**Author:** ![Zack](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/zack/32/89_2.png) [@Zack](https://discourse.myriadrf.org/u/Zack)\
**Post date:** [11 April 2017 05:50 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/16 "2017-04-11T05:50:54Z")

</div>

Hello @papatoux,

Try the latest software (it is LimeSuiteGUI\_20170410.exe at the time of writing) from this [link](http://downloads.myriadrf.org/builds/limesuite/). Let me know if everything is OK.

---

<div class="post-metadata">

**Author:** ![Ancer](https://avatars.discourse-cdn.com/v4/letter/a/278dde/32.png) [@Ancer](https://discourse.myriadrf.org/u/Ancer)\
**Post date:** [11 April 2017 06:03 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/17 "2017-04-11T06:03:01Z")

</div>

Whats new on this software release?

---

<div class="post-metadata">

**Author:** ![Ancer](https://avatars.discourse-cdn.com/v4/letter/a/278dde/32.png) [@Ancer](https://discourse.myriadrf.org/u/Ancer)\
**Post date:** [11 April 2017 13:47 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/18 "2017-04-11T13:47:42Z")

</div>

So far what i can see is the windows now can be change which is i like and needed to my laptop now i can see the bottom parts.

---

<div class="post-metadata">

**Author:** ![papatoux](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/papatoux/32/672_2.png) [@papatoux](https://discourse.myriadrf.org/u/papatoux)\
**Post date:** [11 April 2017 17:07 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/19 "2017-04-11T17:07:36Z")

</div>

Hello @Zack  
Thank you Zack, this new version corrects the GFIR coefficients display.  
Sorry, I profit of your expertise about LimeSuite to ask you about the ‘LMS\_LoadConfig’ command. The topic is here [Loading configuration files using MATLAB](https://discourse.myriadrf.org/t/loading-configuration-files-using-matlab/632/6)  
The ini configuration loading works well except for the LPF configuration.  
May be you can help on this topic ?  
Best regards.  
JJ F1EHN

---

<div class="post-metadata">

**Author:** ![N1JEZ](https://yyz2.discourse-cdn.com/flex034/user_avatar/discourse.myriadrf.org/n1jez/32/288_2.png) [@N1JEZ](https://discourse.myriadrf.org/u/N1JEZ)\
**Post date:** [11 April 2017 20:06 UTC](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564/20 "2017-04-11T20:06:54Z")

</div>

Zack,

Downloaded the latest LimeSuiteGUI. It’s showing me a mismatch error when I connect to my board.

 ![](https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/1X/1ad8d3977bbce72f429da87efbcfc164525f680b.PNG)

So I run the Programming module, but it fails…

 ![](https://canada1.discourse-cdn.com/flex034/uploads/myriadrf/original/1X/c1752a83c18a8fbc2595885c082faa8b6f299e13.PNG)

Ideas?

Tnx,  
Mike

[Next page](https://discourse.myriadrf.org/t/lms7002-digital-filtering-for-hf/564.md?page=2)
